开发指南Bundle 开发模块开发
模块冻结与 Bundle 交付
从项目 Git 快照冻结模块版本,再由 Bundle 统一发布和安装。
冻结模块版本
先检查项目 Git 状态和差异,只提交预期的 module.json 与 methods/*.json:
baijimu project git status <projectId>
baijimu project git diff <projectId> module.json
baijimu project git commit <projectId> \
--message '<message>' \
--file module.json使用返回的真实 commitId 在所属 Bundle 内冻结新的语义版本:
baijimu bundle module freeze <workspace> <bundle> <projectId> \
--module-id <moduleId> \
--version <semanticVersion> \
--commit-id <commitId>这一步只让 module-service 生成不可变快照和安装 Artifact,不产生模块市场条目,也不 触发审核或安装。模块没有独立发布入口。
纳入 Bundle
在 Bundle Manifest 中引用精确版本:
{
"backendModules": [
{
"moduleId": 2200,
"semanticVersion": "1.3.0"
}
]
}把更新后的 Manifest 写回 Bundle,再发布 Bundle 版本:
baijimu bundle update <workspace> <bundle> --manifest @bundle-manifest.json
baijimu bundle version publish <workspace> <bundle> --version <bundleVersion>Bundle 版本发布时解析模块安装 Artifact 并写入 resolvedLock。只冻结模块新版本不会
修改 Bundle,也不会升级任何已安装 Runtime。
验证
- 模块定义归属预期
bundleId。 - 模块版本的
gitCommitId与项目提交一致。 - 版本定义包含预期
module.json和方法文件。 - Bundle
resolvedLock锁定正确moduleId + semanticVersion。 - 市场审核和安装对象都是 Bundle,不存在独立模块市场记录。
- Bundle 安装后 Runtime 服务版本和方法列表正确。
- 同一模块在同一 Runtime 只能安装一次,安装重试不会生成重复记录。
- Bundle 升级后属性、外部资源标识和用户配置没有被默认值覆盖。