打包与分发
构建经过校验的 .curio 包,在本机安装,并通过软件源分发版本。
核对日期:2026 年 9 月 11 日
本页目录
声明生产文件#
.curio 包包含生产 Manifest、UI 资源、可选 Backend 可执行文件、Contract,以及声明的其他运行文件。在源 Manifest 中明确文件清单:
{
"build": { "command": ["npm", "run", "build"] },
"package": { "files": ["dist/ui", "contracts", "assets/icon.png"] }
}
这是配置片段,只列项目实际生成的文件。没有 Contract、图标的 UI-only 工程使用 ["dist/ui"] 即可。需要的许可证和第三方声明也应随运行产物发布。
package.files 是相对文件或目录清单,不是 glob。命令使用 argv 数组;构建脚本需要 Shell 语法时显式调用 Shell。
构建经过校验的包#
trove check
trove pack
pack 执行声明的构建,把文件复制到隔离 staging,校验生产入口和 Contract,最后写入 dist/packages/<id>-<version>-<target>.curio。UI-only 包使用跨平台 target any,Backend 包面向当前平台架构。
归档 Manifest 去除 development、build、package、bindings,源文件保持原样。排除 .env*、.trove、.git、开发 SDK vendor 和 .curio 输出。node_modules 中的运行文件需要明确列入;这并不意味着提供了 Node 运行时。
trove pack --dry-run --json
trove pack --out ~/Desktop/my-tool.curio
trove pack --overwrite --no-input
dry-run 只显示计划,不执行构建,也不能校验未来产物。已有输出需要交互确认或 --overwrite。构建失败不会生成新的成功包,旧输出可能仍在,所以发布前要确认命令真实成功。
安装并在本机验证#
停止开发会话,再安装:
trove install
省略路径时,CLI 查找当前项目的 dist/packages/。单个候选自动选择;多个候选需要选择,非交互模式应明确文件:
trove install ./dist/packages/dev.example.notes-0.1.0-any.curio --no-input --json
替换为实际产物文件名。保持开发服务器停止,在 Trove 中打开已安装 Curio,检查导航、资源、SDK、Contract 和 Backend 启动。install 等待 Host 返回真实成功或失败。
原生运行时要求#
Host 要求为目标平台构建自包含的原生 Backend 可执行文件,不捆绑 Node 或 Python。需要分别验证发布架构、可执行权限与运行文件。
trove new 的 Rust Backend 模板已包含原生构建、类型导出和客户端生成。trove pack 执行这些步骤并校验产物。Node 示例仅用于协议互操作参考,不能将 JS bundle 当作免运行时依赖的原生产物。见 Backend 指南。
通过软件源分发#
pack 不上传、不提升版本、不注册软件源。你需要发布 .curio 产物和 Source Index 条目。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 安装前进行校验。用最终归档生成大小和哈希,不要对中间构建文件计算:
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,刷新并实际安装验证。
安装与更新的生效时机#
安装先校验完整产物,再按内容 SHA-256 存储。相同版本的不同构建仍是独立产物,运行中的代码不会被原地覆盖。
有 UI 正在运行时,新产物先等待,下次打开窗口时生效;无 UI 的后台工具会先停止受管进程,再切换产物,下一次请求按需启动。开发会话引用工程目录,不覆盖已安装版本。切换失败时保留可恢复的有效状态。
安装来源默认保持不变。确需切换时,在底座确认,或使用 trove install file.curio --switch-source;数据随 Curio ID 保留。旧安装记录迁移前会备份元数据。安装后请打开工具,并在调试区核对本次 Run 的来源和产物。