鸿蒙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",请参见对应解决方案

相关推荐
大白要努力!2 分钟前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
菜鸟学Python3 分钟前
Python 数据分析核心库大全!
开发语言·python·数据挖掘·数据分析
Estar.Lee8 分钟前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
一个小坑货10 分钟前
Cargo Rust 的包管理器
开发语言·后端·rust
bluebonnet2714 分钟前
【Rust练习】22.HashMap
开发语言·后端·rust
古月居GYH15 分钟前
在C++上实现反射用法
java·开发语言·c++
Winston Wood20 分钟前
Perfetto学习大全
android·性能优化·perfetto
Myli_ing38 分钟前
HTML的自动定义倒计时,这个配色存一下
前端·javascript·html
在下不上天40 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
陌小呆^O^1 小时前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp