OHPM CLI(OpenHarmony Package Manager Command-line Interface) 作为鸿蒙生态三方库的包管理工具,支持共享包的发布、安装和依赖管理。
在DevEco Studio 3.1 Release及更高版本上新建API 9及以上版本的工程将使用ohpm作为默认包管理器。
说明
仅使用npm包管理的API 8/9历史工程需进行迁移。
整体迁移流程如下:
-
迁移配置文件 将工程和模块下npm包管理相关配置文件package.json或.npmrc,迁移为oh-package.json5或.ohpmrc文件。具体操作请参阅迁移步骤二。
说明
若原工程中无.npmrc文件,则无需迁移为.ohpmrc文件。
-
新增编译构建相关文件 在工程中新增hvigor相关的wrapper文件,包括hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js配置文件。具体操作请参阅迁移步骤三。
-
删除不再使用的npm包管理文件 包含package.json、package-lock.json、.npmrc、node_modules,工程和模块级别下均需进行删除处理。具体操作请参阅迁移步骤四。
|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| | |
| 迁移前文件目录 | 迁移后文件目录 |
历史工程手动迁移
迁移前需对工程进行备份。
具体迁移流程如下:
-
在工程/模块级别中,涉及package.json或.npmrc的配置文件处,创建相同目录层级的oh-package.json5或.ohpmrc文件。 说明
若历史工程为C++工程,src>main>cpp目录下包含package.json或.npmrc,需做相同处理。
-
将历史工程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文件迁移字段对照及说明] - 工程的package.json文件的dependencies字段处理方式如下:
-
工程需要添加ohpm编译构建四件套hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js。可新建一个API 9的新工程,拷贝新工程中hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js四项配置文件,粘贴到历史工程文件夹对应位置。
-
删除工程级别和模块级别下包含的package.json、package-lock.json、.npmrc、node_modules四项配置。
-
点击File>Sync and Refresh Project ,至此,历史工程手动迁移完成。
说明
若同步时报错提示"Install failed FetchPackageInfo:hypium failed",请参见对应解决方案。