【HarmonyOS硬件开发】hpm使用问题总结

【HarmonyOS硬件开发】hpm使用问题总结

什么是hpm

hpm(harmony package manager)鸿蒙包管理器
是华为鸿蒙推出的组件包管理器,可以方便地从官网获取所需组件,根据需要只下载当前项目用到的组件,使得工程文件更加精简。
现有解决方案见如下网站:

https://hpm.harmonyos.com/#/cn/home

前置条件

  • HarmonyOS开发必备编译环境
    hpm只做顶层调用,因此需要按鸿蒙官方配置好编译环境否则,无法调用对应编译工具
  • ubuntu下的nodejs、npm
    官方文档说的有歧义,在win10下的nodejs只能下载无法编译,因此需要在ubuntu下也安装nodejs
sudo apt install nodejs

查看nodejs(v12.13.0+)、npm(v6.14.4+)是否满足官网要求,若否则更新到最新版

node -v
npm -v
  • 路径检查(使用wsl需特别注意)
    wsl的环境变量默认和主系统共用,hpm 编译时遍历路径(不知道为啥hpm非要遍历,直接python build.py wifiiot 就没事)会引起错误
echo $PATH

查看是否有win10 环境变量
如有则进行如下操作禁用:
在wsl终端/etc/目录下新建wsl.conf文件(编辑系统文件,务必sudo开管理员权限!!!)

sudo touch /etc/wsl.conf

用你习惯的编辑器打开(此处以ubuntu20自带的nano为例,vim等类似)

sudo nano wsl.conf

写入以下内容保存退出
(nano为 Ctrl+O,Enter,Ctrl+X)

[interop]
enabled=false
appendWindowsPath=false

回到主系统以管理员权限打开powershell,输入下列指令重启wsl服务

net stop LxssManager
net start LxssManager

再次在wsl中查看环境变量

echo $PATH

此时不再包含/mnt下的环境变量

hpm 安装和使用

安装hpm命令行工具

npm install -g @ohos/hpm-cli

查看hpm是否安装成功

hpm -V

显示正确的hpm版本号

参照官网下载对应组件
下面以WiFiIoT为例(解决方案名以官网最新为准,截止发稿日有已4个)
目录初始化

hpm init -t dist

下载对应组件及依赖包

hpm i @ohos/wifi_iot

显示Installed 成功下载

可以看到此时目录下是没有build.py文件的,需要在下一步生成

执行发行版本命令(包含编译)

hpm dist

显示BUILDE SUCCESS 编译成功
此时 build.py 已生成 后面用python build.py wifiiot 可照常编译

题外话

  • 使用hpm对鸿蒙编译有了一定了解,之前一直想不明白为什么系统工程文件包含这么多语言的代码,现在捋一捋:
    硬件开发者接触的主要程序还是嵌入式常用的C/C++,
    nodejs顶层调用电脑里的脚本,执行版本管理和python编译文件的生成
    python编译路径寻址的中间文件
    gn 、nijia类似cmake和make但编译语言不限于C
  • hpm的初衷应该是方便在生态做大后的各种组件管理,根据手头的硬件按需下载。只是当前解决方案还不够丰富,期待后续更多优秀方案取得官方认定。一起加油!

文章首发于电子发烧友 HarmonyOS社区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值