组件管理

依赖关系

生成基础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

根据每个组件的说明,生成一份合并后的第三方开源说明的合并文件