开发者文档/分发与维护

打包与分发

构建经过校验的 .curio 包,在本机安装,并通过软件源分发版本。

核对日期:2026 年 9 月 11 日

本页目录

声明生产文件#

.curio 包包含生产 Manifest、UI 资源、可选 Backend 可执行文件、Contract,以及声明的其他运行文件。在源 Manifest 中明确文件清单:

json
{
  "build": { "command": ["npm", "run", "build"] },
  "package": { "files": ["dist/ui", "contracts", "assets/icon.png"] }
}

这是配置片段,只列项目实际生成的文件。没有 Contract、图标的 UI-only 工程使用 ["dist/ui"] 即可。需要的许可证和第三方声明也应随运行产物发布。

package.files 是相对文件或目录清单,不是 glob。命令使用 argv 数组;构建脚本需要 Shell 语法时显式调用 Shell。

构建经过校验的包#

sh
trove curio check
trove curio pack

pack 执行声明的构建,把文件复制到隔离 staging,校验生产入口和 Contract,最后写入 dist/packages/<id>-<version>-<target>.curio。UI-only 包使用跨平台 target any,Backend 包面向当前平台架构。

归档 Manifest 去除 development、build、package,源文件保持原样。排除 .env*.trove.git、开发 SDK vendor 和 .curio 输出。node_modules 中的运行文件需要明确列入;这并不意味着提供了 Node 运行时。

sh
trove curio pack --dry-run --json
trove curio pack --out ~/Desktop/my-tool.curio
trove curio pack --overwrite --no-input

dry-run 只显示计划,不执行构建,也不能校验未来产物。已有输出需要交互确认或 --overwrite。构建失败不会生成新的成功包,旧输出可能仍在,所以发布前要确认命令真实成功。

安装并在本机验证#

停止开发会话,再安装:

sh
trove curio install

省略路径时,CLI 查找当前项目的 dist/packages/。单个候选自动选择;多个候选需要选择,非交互模式应明确文件:

sh
trove curio install ./dist/packages/dev.example.notes-0.1.0-any.curio --no-input --json

替换为实际产物文件名。保持开发服务器停止,在 Trove 中打开已安装 Curio,检查导航、资源、SDK、Contract 和 Backend 启动。install 等待 Host 返回真实成功或失败。

原生运行时要求#

当前 Host 要求分发的 Backend 为目标平台的自包含原生可执行文件。JS bundle 或脚本不等于独立于运行时的原生产物。Host 不自带 Node、Python。分别构建并验证要发布的架构,保留可执行权限,包含必要运行文件。

Web、static 是已验证的 CLI 初始化入口;init 尚不提供 Node、Rust、Service 模板。自行接入时参考 Backend 指南

通过软件源分发#

pack 不上传、不提升版本、不注册软件源。你需要发布 .curio 产物和 Source Index v1 条目。Source Index Schema 描述必需格式。

Trove 支持 Git、HTTP(S) 和本地文件索引。Git 源读取远端默认分支的 source/index.json;包地址可以相对 source/,或使用绝对 HTTP(S) URL。HTTP、本地索引中的包地址使用绝对 HTTP(S) 或 file:// URL。

索引标识 Curio 与版本,并提供每个产物的 target、URL、字节数和 SHA-256;Host 安装前进行校验。用最终归档生成大小和哈希,不要对中间构建文件计算:

sh
shasum -a 256 ./dist/packages/dev.example.notes-0.1.0-any.curio
wc -c < ./dist/packages/dev.example.notes-0.1.0-any.curio

使用实际包路径。发布新版本,不覆盖已有版本与架构组合。安装包存放在 Git 时,将索引与包放入同一提交,保持软件源快照一致。

凭据与可访问性#

Git 索引访问使用本机 Git/SSH 配置。HTTP Release 附件匿名下载,不复用 Git 凭据、账号 token 或浏览器 Cookie。SSH 能访问索引,不意味着需要登录的附件也能下载。

在目标用户无需 HTTP 登录即可访问的地址发布附件,索引中不放凭据。在 Trove 添加软件源时使用与索引匹配的源 ID,刷新并实际安装验证。官方公共软件源已收录两个鸿蒙工具,目前没有自动公开投稿命令。