百积木文档
开发指南Bundle 开发模块开发

模块冻结与 Bundle 交付

从项目 Git 快照冻结模块版本,再由 Bundle 统一发布和安装。

冻结模块版本

先检查项目 Git 状态和差异,只提交预期的 module.jsonmethods/*.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。

验证

  1. 模块定义归属预期 bundleId
  2. 模块版本的 gitCommitId 与项目提交一致。
  3. 版本定义包含预期 module.json 和方法文件。
  4. Bundle resolvedLock 锁定正确 moduleId + semanticVersion
  5. 市场审核和安装对象都是 Bundle,不存在独立模块市场记录。
  6. Bundle 安装后 Runtime 服务版本和方法列表正确。
  7. 同一模块在同一 Runtime 只能安装一次,安装重试不会生成重复记录。
  8. Bundle 升级后属性、外部资源标识和用户配置没有被默认值覆盖。

本页内容