
【鸿蒙心迹】ohpm 与包管理实录HAR、HSP 怎么选三方库怎么接前言上一篇给应用装上了桌面卡片功能面铺开之后工程侧的问题跟着来了网络请求不想手写、日志想统一格式模块一拆多代码放哪个包、包之间怎么依赖就成了每天都要回答的问题。这篇把码上清单的包管理实践记录下来ohpm 怎么用、HAR 和 HSP 怎么选、三方库找不到鸿蒙版怎么办。一、ohpm先会用再说ohpm 是鸿蒙的包管理器心智上接近 npm依赖声明在模块的 oh-package.json5 里装包、查版本、锁版本一套流程。几个日常命令ohpm install # 按 oh-package.json5 装依赖 ohpm install ohos/xxx # 直接装某个包 ohpm list # 看当前依赖树实操建议两条版本号写明确范围别无脑用最新——三方库改版对编译期的打击是直接的lock 文件进版本库团队里装出两棵不同的依赖树这种事一把锁就能杜绝。二、HAR 与 HSP静态复制和动态共享自己的代码拆包只有两种容器选错会在包体积和启动速度上还债HAR静态共享包编译期把代码复制进每一个用到它的 HAP。简单、稳、没有运行时依赖问题代价是多个入口都用它时包体积按份数涨。HSP动态共享包运行时共享同一个实例。体积省了、跨模块单例能成立了但约束也多版本必须严格一致所有引用方同步升级。我的选型经验工具层网络封装、日志、工具函数用 HAR求稳大体量的公共业务组件或资源用 HSP求体积拿不准就 HAR它几乎不会让你返工。有一个点值得单独记HSP 的单实例是它最大的价值也最容易踩——HSP 里的全局状态是全应用共享的别在 HAR 心智下假设每个入口各有一份。三、三方库集成实录接三方库的路径先在 ohpm 仓库搜ohos/前缀的包社区移植版大多按这个约定命名看维护活跃度和最近提交再在自己的工程里装、编译、跑一个最小用例。码上清单接的是网络和日志两类。集成顺利与否基本取决于一件事这个库是不是纯 TypeScript 逻辑。纯逻辑的 npm 包不碰 DOM、不碰原生移植成本低多数能直接用或小改一旦涉及原生能力就得走下面第二条路。找不到现成鸿蒙版时三条路按成本排源码直移纯 TS 的包clone 下来改掉不兼容 API打成 HAR 私用重新实现库的功能面不大时自己写比移植维护别人的旧代码便宜NAPI 桥接功能重且依赖 C/C 实现的用 NAPI 包原生库——成本最高除非核心价值就在那份原生实现里否则不碰。四、踩坑三条依赖冲突在 ohpm 这里更刚版本对不上直接报错终止不像有的生态先装上再说。冲突时以 lock 文件和依赖方声明的范围为准把版本收窄到公共交集别用通配符和稀泥。install 卡住先查网络公司内网、代理环境下 ohpm 拉包超时的表现是长时间无输出配好仓库镜像或代理再装别反复重试浪费时间。含 native so 的库看 abi真机和模拟器的架构不同装完在模拟器跑崩先确认 so 是否覆盖了对应架构别急着怀疑自己的代码。小结包管理理顺工程就可以放心长大。下一篇回到 UI 主线一多适配——把码上清单从手机搬到折叠屏断点与栅格的正确打开方式。*本文环境DevEco Studio 5.x / HarmonyOS NEXTAPI 14/ ohpm。包管理细节以官方《ohpm 使用指南》《HAR/HSP 开发指南》为准。系列上一篇《【鸿蒙心迹】桌面卡片实战》。*