鸿蒙ohpm包管理工具的用法(非常详细)
ohpm 作为 OpenHarmony 第三方库的包管理工具,支持 OpenHarmony 共享包的发布、安装和依赖管理。
ohpm 支持在 Windows、macOS、Linux 操作系统下使用。ohpm 通过软链接或符号链接的方式构建依赖关系。不同操作系统需满足如下要求:
ohpm 从命令行和 .ohpmrc 文件中获取其配置设置。ohpm config 仅支持配置项字段,且仅支持修改用户级目录下的 .ohpmrc 文件。
① set:
② get:
③ list:
④ delete:
如果提供了命令名称,则显示相应命令的帮助信息。如果提供的命令名称不存在或未提供,则显示所有命令的概要信息。
ohpm info 可以调用云端查询接口,查看指定包的详细信息,并将结果输出。
例如,执行以下命令:
ohpm info 可以安装指定组件或 oh-package.json5 文件中的所有依赖。如果存在 oh-package-lock.json5 文件,那么安装将取决于 oh-package-lock.json5 文件中锁定的版本。
①
②
③
示例如下:
ohpm list 将以树形结构列出当前项目安装的所有第三方库信息,以及它们的依赖关系。
当指定第三方库名称时,会列出指定第三方库名称的所有父依赖;当未指定第三方库名称时,默认只列出所有的直接依赖,可通过添加选项 depth 来指定要打印的依赖层级。
ohpm uninstall 可以卸载指定已安装的模块,并从 oh-package.json5 文件中的 dependencies 和 devDependencies 属性里移除指定第三方库信息;若没有指定第三方库,则不执行任何操作。如果无须在 oh-package.json5 文件中的 dependencies 和 devDependencies 属性里移除指定第三方库信息,则可配置 --no-save 参数。
例如,从当前工程下卸载直接依赖的某个 package。执行以下命令:
ohpm 将缓存数据存储在配置的 cache 目录下名为 content-v1 的文件夹中,存储所有通过 HTTP 请求获取的 HAR 包数据。包的路径使用包的 sha512 哈希值分割成 3 段,哈希值第 1、2 位作为第一级目录,哈希值第 3、4 位作为第二级目录,哈希值第 5 位到结尾的所有字符作为文件名。使用哈希值可以将文件较均匀地分布在各个目录下,分成 3 层目录结构可以避免一个目录下文件数量过多,从而提升文件索引效率。
例如,查询 ohpm cli 安装版本,可执行以下命令:

图 1 查询ohpm cli安装版本
ohpm 支持在 Windows、macOS、Linux 操作系统下使用。ohpm 通过软链接或符号链接的方式构建依赖关系。不同操作系统需满足如下要求:
- Windows:工程代码文件所在文件系统类型需为 NTFS(Windows 系统下默认为 NTFS)。使用源码依赖时,依赖的源码模块与被依赖的源码模块需要在同一个盘符下,不允许配置跨盘符依赖。
- macOS:工程代码文件所在文件系统类型需为 APFS(macOS 系统下默认为 APFS)。如在 macOS 上挂载了其他不支持符号链接的文件系统(如 FAT32 或 exFAT),则无法在其上创建符号链接。
- Linux:EXT4、Btrfs、XFS、ZFS 等常见 Linux 文件系统类型均满足要求。部分较老或简单的文件系统(不支持符号链接),可能存在无法在其上创建或正确解析软链接的情况。
ohpm常用命令
ohpm config 常用命令有以下 10 个。1) ohpm config
ohpm config 用于设置 ohpm 用户级配置项。命令格式如下:ohpm config set <key> <value> ohpm config get <key> ohpm config delete <key> ohpm config list配置文件中信息以键-值对(Key-Value Pair)形式存在。
ohpm 从命令行和 .ohpmrc 文件中获取其配置设置。ohpm config 仅支持配置项字段,且仅支持修改用户级目录下的 .ohpmrc 文件。
① set:
ohpm config set <key> <value>在用户级目录下的.ohpmrc文件中,以键-值对形式写入数据。
② get:
ohpm config get <key>对从命令行、项目级 .ohpmrc 文件、用户级 .ohpmrc 文件(优先级依次递减)中获取的值进行标准输出。如果未提供键值,则此命令的执行效果与命令 ohpm config list 相同。
③ list:
ohpm config listalias: ls显示所有配置项。
④ delete:
ohpm config delete <key>删除用户级目录下 .ohpmrc 文件中指定的键值。
2) ohpm help
获取有关 ohpm 的帮助。命令格式如下:ohpm help [command] ohpm [command] -help alias: -h参数 command 用于指定命令名称。
如果提供了命令名称,则显示相应命令的帮助信息。如果提供的命令名称不存在或未提供,则显示所有命令的概要信息。
3) ohpm info
查询指定第三方库的具体信息。命令格式如下:ohpm info [options] [<@group>/]<pkg>[@<version> | @tag:<tag>]说明如下:
- @group:第三方库的命名空间,可选;
- pkg:第三方库名称,必选;
- version:第三方库的版本号,可选;
- tag:第三方库的标签,标签会标记第三方库的某个版本号,可选。
ohpm info 可以调用云端查询接口,查看指定包的详细信息,并将结果输出。
例如,执行以下命令:
ohpm info @ohos/lottie --registry https://ohpm.openharmony.cn/ohpm
4) ohpm install
ohpm install 用于安装第三方库,命令格式如下:ohpm install [options] [[<@group>/]<pkg>[@<version> | @tag:<tag>]] ... ohpm install [options] <folder> ohpm install [options] <har file> alias: i说明如下:
- @group:第三方库的命名空间,可选;
- pkg:第三方库名称,可选;当 install 后面没有指定第三方库名称时,会根据当前目录下 oh-package.json5 定义的依赖关系进行全量安装;
- version:第三方库的版本号,可选;
- tag:第三方库的标签,标签会标记第三方库的某个版本号,可选。
ohpm info 可以安装指定组件或 oh-package.json5 文件中的所有依赖。如果存在 oh-package-lock.json5 文件,那么安装将取决于 oh-package-lock.json5 文件中锁定的版本。
①
ohpm install
将依赖项安装到本地 oh_modules 文件夹中,并将所有依赖项作为 dependencies 写入 oh-package.json5 文件。②
ohpm install <folder>
将安装本地文件夹,则默认会创建一个软链接指向该文件夹。示例如下:
ohpm install ../folder
③
ohpm install <harfile>
用于安装压缩包,请注意压缩包的要求:
- 文件名必须使用 .tar, .tar.gz, .tgz, .har 作为扩展名。
- 压缩包里面包含子文件夹 package。
- 子文件夹 package 下面必须包含 oh-package.json5 文件,且配置文件中必须有 name 和 version 字段。
示例如下:
ohpm install ./package.har
5) ohpm list
ohpm list 用于罗列已安装的第三方库。命令格式如下:ohpm list [options] [[<@group>/]<pkg>[@<version>]] alias: ls说明如下:
- @group:第三方库的命名空间,可选。
- pkg:第三方库的名称,可选。
- version:第三方库的版本号,可选。
ohpm list 将以树形结构列出当前项目安装的所有第三方库信息,以及它们的依赖关系。
当指定第三方库名称时,会列出指定第三方库名称的所有父依赖;当未指定第三方库名称时,默认只列出所有的直接依赖,可通过添加选项 depth 来指定要打印的依赖层级。
6) ohpm uninstall
ohpm uninstall 用于卸载第三方库。命令格式如下:ohpm uninstall [options] [<@group>/]<pkg> ... alias: un说明如下:
- @group:第三方库的命名空间,可选。
- pkg:第三方库名称,必选。
ohpm uninstall 可以卸载指定已安装的模块,并从 oh-package.json5 文件中的 dependencies 和 devDependencies 属性里移除指定第三方库信息;若没有指定第三方库,则不执行任何操作。如果无须在 oh-package.json5 文件中的 dependencies 和 devDependencies 属性里移除指定第三方库信息,则可配置 --no-save 参数。
例如,从当前工程下卸载直接依赖的某个 package。执行以下命令:
ohpm uninstall lottie说明如下:
- ohpm 1.0.0~1.3.0:使用 ohpm 卸载时,如果 json 是直接依赖的三方包,则当前工程 oh_modules 目录下的 lottie 目录被删除,同时 json 对应的间接依赖也可能被删除(前提是这些间接依赖的包没有被其他第三方包关联引用)。
- ohpm 1.4.x:ohpm 客户端从 1.4.0 版本开始,卸载时,项目级 oh_modules 目录下的 lottie 目录不会被删除,只有模块级 oh_modules 目录下的 lottie 目录会被删除。
- 通过 oh-package.json5 文件中的 dependencies 属性删除对应的行(例如:"lottie": "2.0.7")。
7) ohpm version
ohpm version 用于管理模块版本。命令格式如下:ohpm version [options] [<newversion> | major | minor | patch]在模块目录中运行 ohpm version 命令,以获取或升级版本号,并将数据回写至 oh-package.json5 中。
8) ohpm cache clean
ohpm cache clean 可以清理 ohpm 缓存文件夹。命令格式如下:ohpm cache cleanohpm cache clean 命令可以清理 ohpm 缓存文件夹。
ohpm 将缓存数据存储在配置的 cache 目录下名为 content-v1 的文件夹中,存储所有通过 HTTP 请求获取的 HAR 包数据。包的路径使用包的 sha512 哈希值分割成 3 段,哈希值第 1、2 位作为第一级目录,哈希值第 3、4 位作为第二级目录,哈希值第 5 位到结尾的所有字符作为文件名。使用哈希值可以将文件较均匀地分布在各个目录下,分成 3 层目录结构可以避免一个目录下文件数量过多,从而提升文件索引效率。
9) ohpm --version
查询 ohpm cli 安装版本,也可以使用 ohpm -v。命令格式如下:ohpm -v | --version说明如下:
- 打印命令行工具的版本号;
- 在安装 ohpm 命令行工具后,可以通过此命令校验安装的版本信息。
例如,查询 ohpm cli 安装版本,可执行以下命令:
ohpm --version结果示例如下图所示:

图 1 查询ohpm cli安装版本
10) ohpm clean
ohpm clean 用于清理工程下所有模块的 ohpm 安装产物。命令格式如下:ohpm clean|clsohpm clean 可以清理工程下所有模块的 oh_modules 目录、oh-package-lock.json5 文件和 oh-package-targetName-lock.json5 文件(指定选项 --target_path 安装时生成)。清理完成后,会在控制台打印耗时信息。