组件管理

依赖关系

生成基础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 组件包依赖关系图
组件管理 - 图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 根据每个组件的说明,生成一份合并后的第三方开源说明的合并文件