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

相关推荐
袋鼠云数栈UED团队4 分钟前
基于 Lexical 实现变量输入编辑器
前端·javascript·架构
cipher16 分钟前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
UrbanJazzerati17 分钟前
非常友好的Vue 3 生命周期详解
前端·面试
AAA阿giao20 分钟前
从零构建一个现代登录页:深入解析 Tailwind CSS + Vite + Lucide React 的完整技术栈
前端·css·react.js
兆子龙1 小时前
像 React Hook 一样「自动触发」:用 Git Hook 拦住忘删的测试代码与其它翻车现场
前端·架构
城东米粉儿2 小时前
Android MediaPlayer 笔记
android
Jony_2 小时前
Android 启动优化方案
android
兆子龙2 小时前
用 Auto.js 实现挂机脚本:从找图点击到循环自动化
前端·架构
阿巴斯甜2 小时前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
SuperEugene2 小时前
表单最佳实践:从 v-model 到自定义表单组件(含校验)
前端·javascript·vue.js