057 — HAR 包的发布与版本管理复用 MoneyTrack 组件到其他项目简介当组件积累到一定规模后将其发布为独立的 HAR 包供其他项目复用是提升团队开发效率的关键一步。MoneyTrack 的各个组件包如bill_card、asset_card、lib_network等都配置了完整的发布清单包括consumer-rules.txt消费者混淆规则、obfuscation-rules.txt混淆规则、oh-package.json5版本声明和CHANGELOG.md变更日志。这套配置使得组件可以像 npm 包一样被其他项目通过ohpm install安装引用。核心知识点1. HAR 包发布完整流程HAR 包从开发到被其他项目引用的完整流程如下图所示1. 开发与测试本地完成功能开发编写单元测试2. 版本号确认遵循 SemVer 规范更新 oh-package.json53. 更新 CHANGELOG记录新增/变更/修复4. 构建 HARohpm build5. 发布方式选择发布到私有仓库ohpm publish--registry本地引用ohpm install--registry6. 消费者安装ohpm installmoneytrack/bill-card7. 版本管理与升级2. HAR 包发布配置HAR 包的发布需要三个关键文件consumer-rules.txt消费者侧的混淆规则指定哪些类/方法需要保留不被混淆确保外部调用正常。obfuscation-rules.txt自身混淆规则保护源码不被逆向。oh-package.json5包名、版本号、依赖声明遵循语义化版本规范。3. ohpm publish 命令的使用构建并发布 HAR 包的完整命令如下# 构建 HAR 包ohpm build# 发布到默认注册表需要先 ohpm loginohpm publish# 发布到私有仓库ohpm publish--registryhttps://private-registry.example.com# 指定具体包路径发布ohpm publish ./component_bill_card/build/default/outputs/default/component_bill_card.har# 消费者安装ohpminstallmoneytrack/bill-card ohpminstallmoneytrack/bill-card1.2.0# 指定版本4. 版本语义化与依赖版本约束遵循 SemVer语义化版本规范主版本.次版本.修订号主版本不兼容的 API 修改。次版本向下兼容的新功能。修订号向下兼容的 Bug 修复。依赖版本约束的详细说明符号示例含义匹配范围^^1.2.3兼容主版本1.2.3 且 2.0.0~~1.2.3兼容次版本1.2.3 且 1.3.01.2.3大于等于1.2.3**任意版本所有版本精确1.2.3仅此版本1.2.3在 MoneyTrack 中模块间依赖统一使用^范围约束。例如moneytrack/bill-card依赖moneytrack/bill-base: ^1.0.0表示 bill-card 可以兼容 bill-base 的 1.x.x 所有次版本和修订版本。这样当 bill-base 发布 1.1.0新增功能或 1.0.1修复 Bug时bill-card 无需修改即可自动兼容。5. CHANGELOG 的规范格式规范的 CHANGELOG 遵循 Keep a Changelog 标准每个版本包含以下分类# 更新日志 ## [1.2.0] - 2026-06-15 ### 新增Added - BillDetailCard 新增附件预览能力 - 支持自定义卡片主题色 - 新增 onLongPress 长按事件回调 ### 变更Changed - 优化卡片布局适配折叠屏 - 提升大数据量列表的滚动性能 ### 弃用Deprecated - 废弃 oldRenderMode 属性将在下一主版本移除 ### 修复Fixed - 修复长文案下卡片文字截断问题 - 修复点击事件冒泡异常 - 修复深色模式下文字颜色不匹配 ### 安全Security - 升级依赖库修复低版本安全漏洞 ## [1.1.0] - 2026-05-01 ### 新增 - 新增 compact 紧凑模式 - 新增 onItemClick 事件回调 - 新增 loading 和 error 状态展示 ### 修复 - 修复首次渲染时闪白问题6. 模块版本依赖管理的最佳实践在多模块工程中版本依赖管理需要遵循以下实践统一版本号管理在工程的根目录维护一个版本映射表如version-map.json5汇总所有模块的当前版本和依赖版本避免版本号散落在各个模块中难以追溯。依赖升级策略次版本和修订版本升级后下游模块通常无需修改即可兼容。主版本升级时建议先在 feature 分支中完成适配再合并到主干。版本锁定对于生产环境在oh-package.json5中使用精确版本号如1.2.0而非^1.2.0避免自动升级引入意外的不兼容问题。开发阶段可以使用^范围约束获取最新功能。定期审计定期执行ohpm audit检查依赖中的已知安全漏洞及时升级修复版本。项目代码案例文件路径component_bill_card/oh-package.json5{ name: moneytrack/bill-card, version: 1.2.0, description: 账单卡片组件库包含 BillInfoCard 和 BillDetailCard, main: index.ets, dependencies: { moneytrack/bill-base: ^1.0.0, ohos/axios: ^2.0.0 } }通过这套发布配置和版本管理策略MoneyTrack 的组件可以被其他鸿蒙项目通过一行命令引用实现跨项目复用同时版本冲突和依赖兼容性问题也得到有效控制。推荐参考文档HAR 包发布与版本管理指南SemVer 语义化版本规范Keep a Changelog 标准