鸿蒙开发:20-ohpm命令及存在的问题

44 阅读3分钟

ohpm命令及存在的问题

1.ohpm install

ohpm install

这个命令大家都很熟悉,用来安装依赖,使用频率很高,常用的就是ohpm install或者ohpm install -all

支持log_level:可以用来过滤日志(如debuginfo等)

支持prefix:可以指定安装目录。

存在的问题:让人很费解的是它支持prefix来指定目录,但指定目录后并不会只安装目录目录内的依赖,而是仍然会给项目全量安装依赖(开发大型项目har包来拆分功能很常见,有时候我们想只更新指定har包依赖)

2.ohpm clean

ohpm clean

ohpm clean:全量清除项目依赖(oh_module目录内容)

支持log_level:可以用来过滤日志(如debuginfo等)

不支持prefix来指定目录

要清除缓存,还需要执行ohpm cache clean

3.ohpm info(**)

ohpm info

ohpm info可以查看指定三方库/二方库包的信息。

image.png

这能干什么?

当我们要做自动发布har包的时候,需要获取仓库最新版本号,或者需要知道某个包的依赖有哪些,都可以使用此命令来查看。

脚本中可以使用变量来接收ohpm info命令查到的数据,在配合正则即可筛选出想要的数据。

支持log_level:可以用来过滤日志(如debuginfo等)

支持Field:可以查看指定内容

image.png

例如:

ohpm info @ohos/lottie --registry https://ohpm.openharmony.cn/ohpm --log_level info latest

image.png

合理利用log_levelField,可以过滤无用日志:

image.png

存在的问题:ohpm info在Linux中目前存在log_level设置不生效的问题(服务器基本都是Linux),会有DEBUG日志乱入,造成获取到的信息中混着DEBUG日志,也可以通过正则解析,但无疑增加了麻烦,后续应该会改进。

4.ohpm version

ohpm version

ohpm version可以用来设置指定包的版本号。

支持log_level:可以用来过滤日志(如debuginfo等)

支持prefix:可以指定安装目录。

支持newversion:直接跟版本号,来直接设置新版本。

image.png

支持majorminorpatch单独升级某一版本。

image.png

其他同理。

存在的问题:ohpm version存在的问题是命令执行完成后会将oh-package.json5文件中的注释给删除掉,不管是依赖行尾的注释,还是被注释的依赖都会被删除。

执行前

image.png 执行后

image.png

5.ohpm publish

ohpm publish

ohpm publish用来发布模块/依赖到三方库,例如要提供har为应用的依赖,则可以发布为三方库。

注意

  1. ohpm publish的大小限制为500M(文档中为300M,但实测是500M)。
  2. 一般三方库都有大小限制,需要搞清楚,不要超限,否则会发布失败(当然一般也不会超)。

支持log_level:可以用来过滤日志(如debuginfo等),来获取发布结果。

支持key_path:用来配置私钥,当然一般会提前用ohpm config set来配置。

支持use_stream_threshold_size:配置流式上传,一般包较大也会自动切换为流式上传。

6.ohpm list

ohpm list

ohpm list常用来查看依赖层级,在大型项目中,包依赖很深时容易有解析问题,可以用来查看,会生成依赖图

支持log_level:可以用来过滤日志(如debuginfo等)

支持-d 参数后跟现实依赖深度,不配置则取默认值 0,只展示直接依赖

//显示20层级的依赖
ohpm list -d 20

image.png

7.ohpm config

ohpm config

ohpm config命令在脚本中用的很常见,用来配置全局ohpm设置,在一些CICD的流水线上会要用到,比如来配置ohpm publish秘钥,配置全局strict_ssllog_level等(即更改用户目录下.ohpm/.ohpmrc文件)。

image.png

image.png

image.png