ohpm命令及存在的问题
1.ohpm install
这个命令大家都很熟悉,用来安装依赖,使用频率很高,常用的就是ohpm install或者ohpm install -all。
支持log_level:可以用来过滤日志(如debug、info等)
支持prefix:可以指定安装目录。
存在的问题:让人很费解的是它支持prefix来指定目录,但指定目录后并不会只安装目录目录内的依赖,而是仍然会给项目全量安装依赖(开发大型项目har包来拆分功能很常见,有时候我们想只更新指定har包依赖)
2.ohpm clean
ohpm clean:全量清除项目依赖(oh_module目录内容)
支持log_level:可以用来过滤日志(如debug、info等)
不支持prefix来指定目录
要清除缓存,还需要执行ohpm cache clean
3.ohpm info(**)
ohpm info可以查看指定三方库/二方库包的信息。
这能干什么?
当我们要做自动发布har包的时候,需要获取仓库最新版本号,或者需要知道某个包的依赖有哪些,都可以使用此命令来查看。
脚本中可以使用变量来接收ohpm info命令查到的数据,在配合正则即可筛选出想要的数据。
支持log_level:可以用来过滤日志(如debug、info等)
支持Field:可以查看指定内容
例如:
ohpm info @ohos/lottie --registry https://ohpm.openharmony.cn/ohpm --log_level info latest
合理利用log_level和Field,可以过滤无用日志:
存在的问题:ohpm info在Linux中目前存在log_level设置不生效的问题(服务器基本都是Linux),会有DEBUG日志乱入,造成获取到的信息中混着DEBUG日志,也可以通过正则解析,但无疑增加了麻烦,后续应该会改进。
4.ohpm version
ohpm version可以用来设置指定包的版本号。
支持log_level:可以用来过滤日志(如debug、info等)
支持prefix:可以指定安装目录。
支持newversion:直接跟版本号,来直接设置新版本。
支持major、minor、patch单独升级某一版本。
其他同理。
存在的问题:ohpm version存在的问题是命令执行完成后会将oh-package.json5文件中的注释给删除掉,不管是依赖行尾的注释,还是被注释的依赖都会被删除。
执行前
执行后
5.ohpm publish
ohpm publish用来发布模块/依赖到三方库,例如要提供har为应用的依赖,则可以发布为三方库。
注意:
ohpm publish的大小限制为500M(文档中为300M,但实测是500M)。- 一般三方库都有大小限制,需要搞清楚,不要超限,否则会发布失败(当然一般也不会超)。
支持log_level:可以用来过滤日志(如debug、info等),来获取发布结果。
支持key_path:用来配置私钥,当然一般会提前用ohpm config set来配置。
支持use_stream_threshold_size:配置流式上传,一般包较大也会自动切换为流式上传。
6.ohpm list
ohpm list常用来查看依赖层级,在大型项目中,包依赖很深时容易有解析问题,可以用来查看,会生成依赖图
支持log_level:可以用来过滤日志(如debug、info等)
支持-d 参数后跟现实依赖深度,不配置则取默认值 0,只展示直接依赖
//显示20层级的依赖
ohpm list -d 20
7.ohpm config
ohpm config命令在脚本中用的很常见,用来配置全局ohpm设置,在一些CICD的流水线上会要用到,比如来配置ohpm publish秘钥,配置全局strict_ssl、log_level等(即更改用户目录下.ohpm/.ohpmrc文件)。