跳到主要内容

ohpm convert

将npm三方库转换为ohpm三方库。因为语法差异,转换时仅对文件进行格式转换,不修改原npm包的代码逻辑。若HAR包在转换后出现代码不兼容的报错,开发者需修改原npm包的代码做适配。

命令格式

ohpm convert [[<@group>/]<pkg>[@<version> | @tag:<tag>]] --registry <string> [--publish]
ohpm convert <node_modules_path> [--publish]

  • @group:三方库的命名空间,可选。
  • pkg:三方库名称,必选。
  • version:三方库的版本号,可选。
  • tag:三方库的标签,标签会标记三方库的某个版本号,可选。

功能描述

将指定npm仓库中的某个包或者本地node_modules目录下的包转换成满足ohpm格式要求的HAR包,并保存至当前工作目录,转换后的包将支持上传至ohpm-repo私仓或OpenHarmony三方库中心仓。

  • ohpm convert @group/pkg@version --registry <npm仓库地址>

    下载指定仓库中的某个包及其所有依赖项,并且将该包及其依赖转换为满足ohpm格式要求的HAR包。

  • ohpm convert <node_modules_path>

    转换本地node_modules中的所有包为满足ohpm格式要求的HAR包,<node_modules_path>必须为npm执行install命令后生成的node_modules目录。

    示例:

    ohpm convert ./xxxx/node_modules

ohpm convert命令仅保留npm包中package.json配置文件中的name、version、main、types、license、description、author、keywords、homepage、repository、artifactType、dependencies、devDependencies、dynamicDependencies、overrides、scripts、hooks,module、packageType、typesVersions、exports和jsnext:main字段,具体字段说明请参考oh-package.json5 字段说明

Options

registry

  • 默认值:无
  • 类型:URL

可以在convert命令后面配置 --registry <registry> 参数,指定仓库地址。如果指定了--registry,convert命令将从远程仓库地址下载指定的包及其依赖后,进行转换处理。如果没有指定--registry,convert命令将从本地node_modules目录进行转换处理。

publish

  • 默认值:false
  • 类型: Boolean

可以在 convert命令后面配置 --publish 参数 ,若指定该参数,执行convert命令前请确认.ohpmrc推包相关配置无误,当所有包转换完成后将根据.ohpmrc中的配置依次进行推包。

log_level

  • 默认值:无
  • 类型: String

从ohpm 6.0.2.636版本开始,可以在convert命令后配置--log_level <string>参数,指定执行当前命令的日志级别(info、debug、warn、error),如果未指定该值则日志级别为.ohpmrc中配置的log_level的级别。

debug

  • 默认值:false
  • 类型: Boolean

从ohpm 6.0.2.636版本开始,可以在命令后配置--debug参数,指定执行当前命令的日志级别为debug,该配置仅在当前命令行生效,不修改.ohpmrc中的日志级别,如果未指定该值则日志级别为.ohpmrc中配置的log_level的级别。

示例

转换远程npm三方库中的包

转换npm三方库中的axios包,执行以下命令:

ohpm convert axios --registry https://registry.npmjs.org/

结果示例:

PS C:\Users\xxxxx\Desktop> ohpm convert axios --registry https://registry.npmjs.org
...
ohpm INFO: > start convert package: asynckit@0.4.0
ohpm INFO: > start convert package: axios@1.6.8
ohpm INFO: > start convert package: combined-stream@1.0.8
...
ohpm INFO: A total of 9 packets are converted successfully.
ohpm INFO: Converted packages are saved to the "C:\Users\xxxxx\Desktop\convert_1712127991590" directory.

转换本地node_modules目录中的包

执行npm install uuid后,转换本地node_modules目录中的包,执行以下命令:

ohpm convert C:\Users\xxxxx\Desktop\uuidInstallDir\node_modules

结果示例:

PS C:\Users\xxxxx\Desktop> ohpm convert C:\Users\xxxxx\Desktop\uuidInstallDir\node_modules
ohpm INFO: > start convert package: uuid
...
ohpm INFO: A total of 1 package(s) are converted successfully.
ohpm INFO: Converted packages are saved to the "C:\Users\xxxxx\Desktop\convert_1712128912583" directory.