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

相关推荐
一只栖枝8 分钟前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
fouryears_2341739 分钟前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~1 小时前
C#---StopWatch类
开发语言·c#
加班是不可能的,除非双倍日工资2 小时前
css预编译器实现星空背景图
前端·css·vue3
lifallen2 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研2 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi3 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip3 小时前
vite和webpack打包结构控制
前端·javascript
excel4 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端
安卓开发者4 小时前
Android RxJava 组合操作符实战:优雅处理多数据源
android·rxjava