HarmonyOS的包类型和 ohpm 包管理工具

HarmonyOS的包类型和 ohpm 包管理工具

💡 原文中文,约2600字,阅读约需7分钟。
📝

内容提要

本文介绍了HarmonyOS的包类型和ohpm包管理工具,包括HAP、HAR和HSP。ohpm是OpenHarmony的包管理工具,支持共享包的发布、安装和依赖管理。

🔎

延伸解读

HAR与HSP的选用考量

HAR作为静态共享包,会被打包到每个依赖的HAP中,导致代码和资源重复,增加应用体积。HSP作为动态共享包,允许多个HAP共享同一份代码和资源,减少体积,但HSP仅支持Release模式打包,调试不便。因此,开发阶段建议使用HAR版本的库,便于调试;发布时可根据需要切换为HSP以优化体积。

ohpm私仓的配置与发布

ohpm支持通过.ohpmrc配置文件设置仓库地址和发布参数。用户级配置文件位于~/.ohpm/.ohpmrc,项目级位于工程根目录。发布共享包前,需在.ohpmrc中配置publish_registry、publish_id和key_path,并确保oh-package.json5文件包含完整的元数据。发布HAR使用ohpm publish命令,发布HSP需先构建为tgz包。

ohpm环境初始化与依赖安装

使用ohpm前需在终端添加环境变量并执行初始化脚本。若提示缺少npm,需先安装Node.js。通过DevEco-Studio新建项目时,会自动生成oh-package.json5文件,在该目录下执行ohpm i命令即可安装依赖库并更新配置文件。ohpm从命令行和.ohpmrc文件中获取配置,支持配置多个仓库地址。

❓

Q&A

HarmonyOS 中的 HAP 包是什么?它有哪些类型?

HAP(Harmony Ability Package)是应用安装和运行的基本单元,由代码、资源、第三方库、配置文件等打包生成。主要分为两种类型:entry 和 feature。entry 是应用的主模块,提供基础功能;feature 是动态特性模块,可根据需求选择性安装。

HAR 和 HSP 有什么区别?

HAR 是静态共享包,不能独立安装运行,只能作为依赖项被引用,会被打包到每个依赖的 HAP 里。HSP 是动态共享包,跟随宿主应用发布,与宿主应用同进程,具有相同的包名和生命周期,允许多个 HAP 共享同一份代码和资源。

ohpm 是什么?它有什么作用?

ohpm 是 OpenHarmony 三方库的包管理工具,支持 OpenHarmony 共享包的发布、安装和依赖管理。配套的 ohpm-repo 可用于搭建轻量级私仓服务,兼容 ohpm 包管理器,并按需缓存依赖项,加速私有网络中的安装。

如何发布一个共享包到 ohpm 私仓?

首先配置 .ohpmrc 文件中的发布参数(如 publish_registry、publish_id、key_path),然后确保共享包包含 oh-package.json5 文件描述元数据。对于 HAR 或 HSP(HSP 需配置为 release 模式并构建 tgz 包),执行命令:ohpm publish <HAR路径>。

ohpm 的配置文件 .ohpmrc 有哪些关键配置项?

.ohpmrc 是 ini 格式的配置文件,关键配置项包括:registry(仓库地址,支持多个)、publish_registry(发布仓库地址)、publish_id(用户发布 ID)、key_path(私钥文件路径)。用户级配置文件位于 ~/.ohpm/.ohpmrc,项目级位于工程或 HAP 根目录。

在开发中,HAR 和 HSP 应该如何选择?

HSP 仅支持 Release 模式打包依赖,不方便调试,因此在开发对接时更适合提供 HAR 版本的库。可以通过修改 module.json5 中的 type 字段(har 或 shared)来切换 Module 类型。

🏷️

标签

➡️

继续阅读