组件管理
依赖关系
生成基础bundle.json以后,需要继续添加组件依赖来实现更复杂的功能。此时需要知道所依赖组件的名称和版本号,并且把它们定义在bundle.json里面的dependencies字段中。
1. {
2. "name": "my-bundle",
3. "version": "1.0.0",
4. "dependencies": {
5. "net": "1.0.0"
6. }
7. }
上述示例中,my-bundle组件依赖于net 1.0.0组件。在全局安装了 hpm CLI 工具之后,执行如下命令可以从远端仓库获取到依赖:
1. hpm install
依赖获取以后,会保存到当前组件根目录下到ohos_bundles文件夹中。组件以及依赖之间会形成一个依赖关系的树状结构。全局安装了 hpm CLI 工具之后,在组件根目录下执行如下命令:
1. username@server MINGW64 /f/showcase/demo/demo
2. $ hpm list
3. +--demo@1.0.0
4. | +--@huawei/media@1.0.2
5. | +--@demo/sport_hi3518ev300_liteos_a@1.0.0
6. | | +--@demo/app@4.0.1
7. | | | +--@demo/build@4.0.1
8. | | | +--@demo/arm_harmonyeabi_gcc@4.0.0
9. | | +--@demo/liteos_a@4.0.0
10. | | | +--@demo/third_party_fatfs@4.0.0
11. | | | +--@demo/arm_harmonyeabi_gcc@4.0.0
12. | | +--@demo/init@4.0.0
13. | | +--@demo/dist_tools@4.0.0
还可以使用图的形式,来查看当前组件的依赖关系,执行如下命令:
1. hpm dependencies
在当前目录下会生成deps_visual文件夹,里面包含两个文件,deps.html 和 deps-data.js。在浏览器中打开 deps.html 文件,就可以看到依赖关系的图形化展示(如下图)。
根据不同的依赖类型,图形结点呈现出不同的颜色。鼠标悬浮在结点上,可以查看当前结点的状态。
图 1 组件包依赖关系图

hpm操作命令参考
组件的全生命周期管理,可以通过hpm命令工具进行操作,hpm的操作命令如下(详细帮助可以执行 hpm -h学习):
表 1 hpm操作命令
| 命令类别 | 命令行 | 含义说明 |
|---|---|---|
| 版本查询 | hpm -V 或 hpm —version | 查看hpm-cli 版本号。 |
| 帮助查询 | hpm -h 或 hpm —version | 查看命令列表及帮助。 |
| hpm -h | 查看命令帮助。 | |
| 创建 | hpm init bundle | 创建组件工程。 |
| hpm init -t template | 根据模板创建脚手架工程。 | |
| 安装 | hpm install 或hpm i | 安装bundle.json中依赖的组件。 |
| hpm install bundle@version | 安装指定组件版本。 | |
| 卸载 | hpm uninstall bundle | 删除depedencies依赖的组件。 |
| hpm remove 或hpm rm bundlename | 删除depedencies依赖的组件。 | |
| 查看 | hpm list 或者 hpm ls | 显示当前组件/发行版所有的组件树。 |
| hpm dependencies | 生成当前组件/发行版依赖关系图(html格式)。 | |
| 搜索 | hpm search name | 搜索组件,—json,可以以json格式输出 -type 可以设置搜索组件的类型,包括bundle,distribution,code-segment三种。 |
| 设置hpm配置项 | hpm config set key value | 设置配置值,如服务器地址,网络代理。 |
| hpm config delete key | 删除配置。 | |
| 更新 | hpm update | 更新当前组件依赖的组件的版本。 |
| hpm check-update | 检查依赖的组件版本是否有更新。 | |
| 编译 | hpm build | 编译组件/发行版。 |
| hpm dist | 发行版打包(依赖bundle.json的scripts中的dist脚本)。 | |
| 打包 | hpm pack | 本地组件打包依赖。 |
| 烧录 | hpm run flash | 烧录固件(依赖bundle.json的scripts中的flash脚本)。 |
| 发布 | hpm publish | 发布组件,发布的组件在仓库中必须唯一,且版本唯一(需要账号登录)。 |
| 执行扩展命令 | hpm run | 执行bundle.json文件中定义的scripts脚本命令,支持多个命令可用 && 连接。 |
| 生成秘钥 | hpm gen-keys | 生成公钥/私钥对,将公钥配置到HPM服务端,可以实现hpm-cli |
| 生成第三方开源说明 | hpm gen-notice | 根据每个组件的说明,生成一份合并后的第三方开源说明的合并文件 |
