在HarmonyOS Next开发中,高效的包管理是项目顺利推进的关键。ohpm-repo私有仓库为我们提供了强大的包管理功能,今天就为大家详细介绍如何在这个私有仓库中进行包的下载、上传以及相关的优化技巧。

如何从ohpm-repo下载依赖包?

ohpm config set registry设置私有仓库源

在从ohpm-repo下载依赖包之前,我们首先要告诉ohpm包管理器去哪里找我们的私有仓库,这就需要使用ohpm config set registry命令来设置私有仓库源。仓库源地址通常是配置文件中store.config.server的地址加上/repos/ohpm 。例如,如果store.config.serverhttp://192.168.1.100:8088,那么我们设置仓库源的命令如下:

ohpm config set registry http://192.168.1.100:8088/repos/ohpm

这样,ohpm就知道从我们指定的私有仓库去获取依赖包了。

ohpm install安装

设置好私有仓库源后,使用ohpm install命令就能轻松安装依赖包了。比如,我们要安装@ohos/lottie这个包,只需要在项目目录下的终端执行:

ohpm install @ohos/lottie

此时,ohpm会从我们刚刚设置的私有仓库中查找并下载@ohos/lottie包及其依赖项,然后自动完成安装。如果项目依赖多个包,ohpm install会一次性处理所有依赖,极大地提高了开发效率。

如何发布自定义包到私有仓库?

ohpm publish <包路径>上传.har、.tgz等包

在HarmonyOS Next开发中,我们开发的自定义包可以是静态共享包(HAR包)或动态共享包(HSP包)。从ohpm命令行工具1.3.0版本和ohpm-repo私仓1.1.0版本开始,HSP包也可以以.tgz文件形式发布到ohpm-repo 。

对于静态共享包HAR包,发布非常简单。先确保已经生成了HAR包,假设包名为demo.har,在终端执行:

ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
ohpm publish demo.har

也可以在命令行中通过--publish_registry参数指定发布地址:

ohpm publish demo.har --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm

对于动态共享包HSP包,由于它不能直接发布在ohpm-repo内,需要先转化为.tgz包,转换方法可参考相关文档。转换完成后,发布流程和HAR包一致,例如:

ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
ohpm publish demo.tgz

或者

ohpm publish demo.tgz --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm

发布时,ohpm-repo私仓管理地址的填写要根据listen的配置来确定。如果listenhost不为0.0.0.0,管理地址使用listen的完整格式;如果listenhost0.0.0.0host需更改为ohpm-repo私仓部署机器的ip/域名。

包管理优化:如何加速下载与缓存?

uplink_cache机制

ohpm-repo提供了uplink_cache机制来加速包的下载。uplink_cache_path指定了远程包缓存路径,默认是./uplinkuplink_cache_time设置了远程包metadata的缓存时间,单位为小时,默认168小时。合理调整这两个参数可以显著提高下载速度。
例如,我们可以将缓存路径设置到读写速度更快的磁盘分区,以提高缓存的读写效率:

uplink_cache_path: /data/ohpm-cache/uplink

如果项目依赖的远程包更新不频繁,我们可以适当延长缓存时间,减少对远程资源的重复请求:

uplink_cache_time: 336

这样,在缓存有效期内,再次下载相同的包时,ohpm-repo会直接从本地缓存中获取,大大加快了下载速度。

store.config.server配置

store.config.server配置在包管理优化中也起着重要作用。它指定了仓库内容的下载地址,正确配置这个地址可以确保下载的准确性和高效性。当listenhost0.0.0.0且本机存在多个网络接口时,必须配置store.config.server。如果配置不当,可能会导致下载失败或下载速度缓慢。
例如,当listen0.0.0.0:8088时,store.config.server应配置为http://<本机ip/域名>:8088 。如果需要通过反向代理来访问ohpm-repo服务,则该字段须配置为反向代理服务器的域名地址,且需要配置use_reverse_proxy值为true。这样,通过合理配置store.config.server,可以优化包的下载路径,提高下载速度。

通过上述方法,我们可以在HarmonyOS Next开发中,熟练使用ohpm-repo进行包的下载、上传,并通过优化措施提升包管理的效率,为项目开发节省大量时间和精力。希望这些内容能帮助大家在实际开发中更好地利用ohpm-repo私有仓库进行包管理。


SameX
1 声望2 粉丝