背景
当前新增 service package 时,需要手工同步维护多个集中注册表文件:
services/package.json 的 bin / files
services/bin/octobus-tentacles.js 的 service map
services/bin/*.js root wrapper
在多个 service PR 并行时,这些文件会被频繁修改,容易产生 merge conflict;即使合并成功,也可能出现遗漏、重复、不可执行位不一致、package manifest 与实际 service 目录不一致等问题。
相关现象:
需求
新增一个 service registry 生成脚本,例如:
node services/scripts/generate-service-registry.mjs
建议配套 npm scripts:
{
"registry:generate": "node scripts/generate-service-registry.mjs",
"registry:check": "node scripts/generate-service-registry.mjs --check"
}
建议设计
生成脚本扫描 services/ 下所有包含 service.json 的 service 目录,并基于每个 service 的声明生成或更新:
services/package.json 中的 bin entries
services/package.json 中的 files entries
services/bin/octobus-tentacles.js 中的 service map
- 缺失的
services/bin/<service-name>.js root wrapper
脚本应保持稳定排序,避免无意义 diff。
--check 模式只校验生成结果是否与工作区一致,不写文件,用于 CI。
验收标准
- 新增
services/scripts/generate-service-registry.mjs。
- 新增
registry:generate 和 registry:check npm scripts。
- 执行生成脚本后,
services/package.json、services/bin/octobus-tentacles.js 和 root wrappers 与实际 service 目录一致。
registry:check 可在 CI 中发现 registry 未更新、缺失 wrapper、重复 entry、不可执行位缺失等问题。
- 后续新增 service package 时,主要改动集中在 service 自身目录,降低
services/package.json / octobus-tentacles.js 的人工合并冲突概率。
背景
当前新增 service package 时,需要手工同步维护多个集中注册表文件:
services/package.json的bin/filesservices/bin/octobus-tentacles.js的 service mapservices/bin/*.jsroot wrapper在多个 service PR 并行时,这些文件会被频繁修改,容易产生 merge conflict;即使合并成功,也可能出现遗漏、重复、不可执行位不一致、package manifest 与实际 service 目录不一致等问题。
相关现象:
services/package.json/services/bin/octobus-tentacles.js时,会在合并最新main后反复冲突。需求
新增一个 service registry 生成脚本,例如:
建议配套 npm scripts:
{ "registry:generate": "node scripts/generate-service-registry.mjs", "registry:check": "node scripts/generate-service-registry.mjs --check" }建议设计
生成脚本扫描
services/下所有包含service.json的 service 目录,并基于每个 service 的声明生成或更新:services/package.json中的binentriesservices/package.json中的filesentriesservices/bin/octobus-tentacles.js中的 service mapservices/bin/<service-name>.jsroot wrapper脚本应保持稳定排序,避免无意义 diff。
--check模式只校验生成结果是否与工作区一致,不写文件,用于 CI。验收标准
services/scripts/generate-service-registry.mjs。registry:generate和registry:checknpm scripts。services/package.json、services/bin/octobus-tentacles.js和 root wrappers 与实际 service 目录一致。registry:check可在 CI 中发现 registry 未更新、缺失 wrapper、重复 entry、不可执行位缺失等问题。services/package.json/octobus-tentacles.js的人工合并冲突概率。