鸿蒙Harmony开发:OHPM包适配管理工具

OHPM CLI(OpenHarmony Package Manager Command-line Interface) 作为鸿蒙生态三方库的包管理工具,支持共享包的发布、安装和依赖管理。

在DevEco Studio 3.1 Release及更高版本上新建API 9及以上版本的工程将使用ohpm作为默认包管理器。

说明

仅使用npm包管理的API 8/9历史工程需进行迁移。

整体迁移流程如下:

  1. 迁移配置文件 将工程和模块下npm包管理相关配置文件package.json或.npmrc,迁移为oh-package.json5或.ohpmrc文件。具体操作请参阅迁移步骤二。

    说明

    若原工程中无.npmrc文件,则无需迁移为.ohpmrc文件。

  2. 新增编译构建相关文件 在工程中新增hvigor相关的wrapper文件,包括hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js配置文件。具体操作请参阅迁移步骤三。

  3. 删除不再使用的npm包管理文件 包含package.json、package-lock.json、.npmrc、node_modules,工程和模块级别下均需进行删除处理。具体操作请参阅迁移步骤四。

|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| | |
| 迁移前文件目录 | 迁移后文件目录 |

历史工程手动迁移

迁移前需对工程进行备份。

具体迁移流程如下:

  1. 在工程/模块级别中,涉及package.json或.npmrc的配置文件处,创建相同目录层级的oh-package.json5或.ohpmrc文件。 说明

    若历史工程为C++工程,src>main>cpp目录下包含package.json或.npmrc,需做相同处理。

  2. 将历史工程package.json和.npmrc文件中包含的需要迁移的字段,拷贝到对应的oh-package.json5和.ohpmrc文件中。

    oh-package.json5包含字段 字段说明 迁移/新增字段 原package.json字段 说明
    name 软件包名称 迁移字段 name 必选字段,若package.json文件中未指明,需在oh-package.json5添加补齐
    version 软件包版本 迁移字段 version 必选字段,若package.json文件中未指明,需在oh-package.json5添加补齐
    description 软件包简介 迁移字段 description 必选字段,若package.json文件中未指明,需在oh-package.json5添加补齐
    keywords 软件包关键字 迁移字段 keywords -
    homepage 主页链接 迁移字段 homepage -
    license 开源协议 迁移字段 license -
    author 软件包作者 迁移字段 author -
    main 软件包入口 迁移字段 main -
    repository 仓库地址 迁移字段 repository -
    dependencies 生产依赖 迁移字段 dependencies 该字段处理方式请参阅下方说明内容
    devDependencies 开发依赖 迁移字段 devDependencies -
    types 类型定义 迁移字段 types -
    artifactType 共享包类型 新增字段,非必选配置项 - 可选项: * original:源码,即发布源码(.ts/.ets)。 * obfuscation:混淆代码,即源码经过混淆之后发布上传。
    [表1oh-package.json5字段及迁移说明]

    说明

    • 工程的package.json文件的dependencies字段处理方式如下:
      • @ohos/hypium:测试框架的依赖,迁移时需要放到oh-package.json5文件的devDependencies字段下;
      • 删除@ohos/hvigor和@ohos/hvigor-ohos-plugin字段,无需迁移到oh-package.json5中;
      • 其他依赖可直接复制到oh-package.json5的dependencies字段中。
    • 除表格中呈现的字段外,package.json中其余字段暂不支持迁移。如您在历史工程中使用到其余字段,请反馈您所使用的字段(选中文本,点击"意见反馈")。
    .npmrc字段 字段释义 .ohpmrc对应字段
    registry 仓库地址 registry
    @${scope}:registry 指定仓库 @${group}:registry
    cache 缓存路径 cache
    noproxy 不使用proxy代理 no_proxy
    proxy http代理 http_proxy
    https-proxy https代理 https_proxy
    strict-ssl ssl校验 strict_ssl
    cafile ca证书路径 ca_files
    loglevel 日志级别 log_level
    [表2.npmrc文件迁移字段对照及说明]
  3. 工程需要添加ohpm编译构建四件套hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js。可新建一个API 9的新工程,拷贝新工程中hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js四项配置文件,粘贴到历史工程文件夹对应位置。

  4. 删除工程级别和模块级别下包含的package.json、package-lock.json、.npmrc、node_modules四项配置。

  5. 点击File>Sync and Refresh Project ,至此,历史工程手动迁移完成。

说明

若同步时报错提示"Install failed FetchPackageInfo:hypium failed",请参见对应解决方案

相关推荐
不爱吃炸鸡柳10 小时前
算法复杂度从入门到精通:时间与空间复杂度全解析
开发语言·c++·算法
zero159710 小时前
TypeScript 快速实战系列:函数进阶|TypeScript 函数 + 异步:大模型 API 调用核心
前端·typescript·大模型编程语言
無名路人10 小时前
用 codex AI 更新了下之前写的浏览器云书签标签页扩展
前端·openai·ai编程
月弦笙音10 小时前
【pnpm 】pnpm 执行 xxx 的 底层原理
前端
游乐码10 小时前
c#lambad表达式
开发语言·c#
weixin_4080996710 小时前
python请求文字识别ocr api
开发语言·人工智能·后端·python·ocr·api·ocr文字识别
Devin_chen10 小时前
单例模式渐进式学习指南
前端·javascript
Huanzhi_Lin10 小时前
鸿蒙NEXT-HelloWorld
华为·harmonyos·arkts·arkui·ets
不爱吃炸鸡柳10 小时前
C++ 进阶:unordered_map 与 unordered_set 超全详解(哈希容器实战)
开发语言·c++·哈希算法
码云数智-大飞10 小时前
Go并发编程避坑指南:如何彻底解决死锁(Deadlock)问题
开发语言