背景:
mp-harmony 项目的子包 HAR 配置分散在 4 个地方:
1. entry/har-deps-required.json5 的 requiredHarDeps (单一事实源)
2. mp-harmony/build-profile.json5 的 modules 数组
3. entry/oh-package.json5 的 dependencies
4. ascf_build 实际目录
新增/删除子包时, 任何一处忘改都会导致鸿蒙构建失败:
- build-profile.json5 没加 → hvigor 不构建该模块
- entry/oh-package.json5 没加 file: → ohpm 不 link 该 HAR
- ascf_build/ 目录不存在 → ohpm "Field IS Empty Error"
- har-deps-required.json5 没加 → check-har-deps 不会检查
改动:
新增 scripts/check-subpackage-sync.js:
- 读取 entry/har-deps-required.json5 作为单一事实源
- 扫描 build-profile.json5 的 modules / entry/oh-package.json5
的 file: 依赖 / ascf_build 实际目录 / 每个子包的关键文件齐备性
- 任何一处不一致立即报错, 指出哪一处需要修改
- 支持 --strict 模式 (CI 用, exit 1 阻断 build)
- 已验证反向场景: 故意添加 pages_extra 到 build-profile.json5
后跑 --strict, 立即报告 "build-profile.json5 多了 [pages_extra]"
使用方式:
本地日常: node scripts/check-subpackage-sync.js
CI 严格: node scripts/check-subpackage-sync.js --strict
新增子包 SOP: 跑一次确认没漏, 不一致会列出缺失位置
依赖: 项目已有 json5 包 (devDependencies transitive), 无需新装
8.2 KiB
8.2 KiB