美文网首页
鸿蒙HarmonyOS ohpm-repo私仓搭建和发布HAR

鸿蒙HarmonyOS ohpm-repo私仓搭建和发布HAR

作者: wuyukobe | 来源:发表于2024-11-17 19:14 被阅读0次

目录

一、ohpm-repo搭建私仓

二、发布HAR包到ohpm-repo私仓

三、发布成功后HAR包的导入和使用


对于个人构建的HAR静态共享包,可以发布到官方OpenHarmony三方库中心仓,供他人使用。如果是公司业务相关的库,并不想被外部人员使用,可以在公司内部使用ohpm-repo搭建一个私有仓库供内部人员使用,一来比较安全,二来集成也比较快。

一、ohpm-repo搭建私仓

1、node环境安装

ohpm-repo 依赖于 node 运行,支持 node.js 18.x 及以上版本,请提前安装 nodejs,并完成环境变量的配置。Node.js安装请参考Node.js官方网站。
终端输入以下命令校验node安装版本 node -v

<git> node -v
v18.15.0

2、官方下载中心下载 ohpm-repo 私仓工具包。

下载 ohpm-repo 私仓工具包

3、解压下载好的ohpm-repo 私仓工具包,获取以下文件目录:

ohpm-repo文件目录

4、将上图bin目录的路径配置到系统环境变量path中:

  • mac中打开环境变量配置文件
vim ~/.zshrc
  • 将以下代码粘到配置文件中
export PATH="/Users/xxx/ohpm-repo-5.0.7.0/bin:$PATH"
  • 执行命令保存配置文件
source ~/.zshrc

5、执行以下命令,查询版本:

<git> ohpm-repo -v                   
5.0.7

6、修改私仓工具包中的配置 conf/config.yaml

路径为:/Users/xxx/ohpm-repo-5.0.7.0/conf/config.yaml
我这里使用默认本机数据调试,没有做修改。参考官方:配置文件

listen: localhost:8088        # 建议修改为具体的ip:port
.
.
.

7、执行安装命令:

ohpm-repo install

输出以下信息表示安装成功:

<git> ohpm-repo install
[2024-11-15T15:16:07.410] [WARN] default - "listen" protocol is set to 'http' in "config.yaml" file, which is insecure, advise to use the more secure 'https' protocol instead.
[2024-11-15T15:16:07.425] [INFO] default - initialize encryption component successfully.
[2024-11-15T15:16:07.426] [INFO] default - initialize "file database" successfully.
[2024-11-15T15:16:07.428] [INFO] default - initialize "file storage" successfully.
[2024-11-15T15:16:07.433] [INFO] default - insert repo success: repo's id is 5cdc28ee00c1428991f25b82f48c3741.
[2024-11-15T15:16:07.434] [INFO] default - insert systemSecurity config success: support anonymous access to ohpm-repo.
[2024-11-15T15:16:07.434] [INFO] console - install successfully.
[2024-11-15T15:16:07.445] [INFO] default - set "deploy_root" environment variables successfully: "OHPM_REPO_DEPLOY_ROOT = /Users/xxx/ohpm-repo".
[2024-11-15T15:16:07.445] [INFO] console - to make the environment variables of "deploy_root" take effect, please run the refresh command: "source ~/.zshrc " or ". ~/.zshrc".

mac 会自动设置环境变量

export OHPM_REPO_DEPLOY_ROOT=/Users/wxq/ohpm-repo

所以需要再执行一下环境变量保存命令:

source ~/.zshrc

8、执行启动命令:

ohpm-repo start

输出以下信息表示启动成功:

<git> ohpm-repo start  
[2024-11-15T15:18:34.073] [WARN] default - "listen" protocol is set to 'http' in "config.yaml" file, which is insecure, advise to use the more secure 'https' protocol instead.
[2024-11-15T15:18:34.074] [INFO] default - config file path: "/Users/xxx/ohpm-repo/conf/config.yaml".
[2024-11-15T15:18:34.076] [INFO] default - initialize "file database" successfully.
[2024-11-15T15:18:34.076] [INFO] default - initialize "file storage" successfully.
[2024-11-15T15:18:34.089] [INFO] console - http address - localhost:8088 - ohpm-repo/5.0.7.

此时在浏览器打开 http://localhost:8088/,会看到构建好的私仓页面:

ohpm-repo私仓页面

ohpm-repo 首次启动时,默认创建一个管理员账号,账号名称:admin,密码:12345Qq! 。该账号在首次登录时,需要修改其密码,请修改密码后,重新登录该账号:

ohpm-repo登录admin后主页面

二、发布HAR包到ohpm-repo私仓

提示:发布HAR包到ohpm-repo和发布到官方OpenHarmony三方库中心仓是一样的逻辑。

1、创建发布组织

当想要上传一个含有组织(例如@wxqos/wxqcolor)的包时,在ohpm-repo中需要先创建出该组织(例如wxqos)才能进行上传。和发布到官方OpenHarmony三方库中心仓不同的是,这个组织创建后不用审核,直接就可以使用。具体的申请,请参考官方文档:组织管理

创建发布组织

2、利用工具ssh-keygen生成公、私钥,可通过执行以下命令来生成公钥和私钥:

ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey 

在命令执行过程中,会让你输入一个密码,这个密码是后面用来上传包用的,一定要记住!!!

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

如果本地 ~/ 路径下没有隐藏文件夹.ssh_ohpm,需要先手动创建一个:cd到 ~/ 下,执行 mkdir .ssh_ohpm。
执行成功后会生成以下私钥和公钥文件:

公钥和私钥路径

官方说明:

  • ~/.ssh_ohpm/mykey 为私钥文件 mykey 的文件路径,按照实际情况指定。指定的私钥存储目录必须存在。【解释:生成的mykey为私钥,存储到本地】
  • 追加了.pub后缀的相应公钥文件会存放在和私钥相同的目录下。【解释:生成的mykey.pub为公钥,后面会将公钥内容复制到OpenHarmony三方库中心仓官网中个人信息下,参考步骤3】
  • OHPM包管理器只支持加密密钥认证,请在生成公私钥时输入密码。【解释:就是上面说的密码,后面上传包的时候会用】

3、登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心,新增OHPM公钥,将公钥文件(mykey.pub)的内容粘贴到公钥输入框中。

添加公钥

公钥添加成功后显示:

公钥添加成功

4、打开命令行工具,将对应私钥文件路径配置到 .ohpmrc 文件中 key_path 字段上。

执行以下命令进行配置:

ohpm config set key_path  ~/.ssh_ohpm/mykey

在ohpmrc文件中会填充一条内容,表示命令执行成功:

key_path=/Users/xxx/.ssh_ohpm/mykey
ohpmrc文件路径

5、登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心,复制发布码,获取发布码并配置到 .ohpmrc 文件中,可执行如下命令:

ohpm config set publish_id your_publish_id

执行完成后,会在步骤6中的 ohpmrc文件中会新增一条内容:

publish_id=your_publish_id

将其中的 your_publish_id 替换成你在官网复制的发布码(比如:5UABCDEFGH)即可。
也可以直接执行以下命令即可:

ohpm config set publish_id 5UABCDEFGH
复制发布码

6、发布 HAR包

执行 ''ohpm publish <HAR包路径>'' 命令发布 HAR包,<HAR包路径> 指向的文件后缀需为 .har 文件的具体路径。例如执行以下命令:

ohpm config set publish_registry http://localhost:8088/repos/ohpm
ohpm publish /Users/xxx/WXQHMProject/wxqcolor/build/default/outputs/default/wxqcolor.har

或在命令行中配置参数 --publish_registry 使用,例如以下命令:

ohpm publish /Users/xxx/WXQHMProject/wxqcolor/build/default/outputs/default/wxqcolor.har --publish_registry http://localhost:8088/repos/ohpm

注意:其中会让你输入一个密码,就是上面说的上传包的密码。

终端打印以下信息就表示发布完成了:

<git> ohpm publish /Users/wxq/DevEcoStudioProjects/WXQColorHM/wxqcolor/build/default/outputs/default/wxqcolor.har
registry:http://localhost:8088/repos/ohpm/

package:@wxqos/wxqcolor@1.0.0

=== Harball Contents ===
519B    BuildProfile.ets
66B     CHANGELOG.md
198B    Index.ets
587B    LICENSE
1004B   README.md
27B     ResourceTable.txt
500B    build-profile.json5
0B      consumer-rules.txt
234B    hvigorfile.ts
93.3kB  img.png
1008B   obfuscation-rules.txt
300B    oh-package.json5
593B    src/main/module.json
274B    src/main/ets/components/MainPage.ets
1.1kB   src/main/ets/components/WXQColor.ets
96B     src/main/resources/base/element/string.json
96B     src/main/resources/en_US/element/string.json
96B     src/main/resources/zh_CN/element/string.json

=== Harball Details ===
name:           @wxqos/wxqcolor
version:        1.0.0
filename:       @wxqos/wxqcolor-1.0.0.har
package size:   95.7 kB
unpacked size:  99.8 kB
shasum:         TKIo4iIPMFmZMfG2MVlUPqH0O4U=
integrity:      sha512-yEZi/38AayT9zGjJxJWJxviuB9F4F7W6O9se2Ok49CYxVGiPDRSP+1qSWjRdj9WN9N9sv3++t6pOCRJl4foqYw==
total files:    18


ohpm WARN: The HAR package to be uploaded contains source code, which may cause code asset leakage. Please abort if you do not want to procceed.
what is your passphrase of the private key: *******
+@wxqos/wxqcolor 1.0.0 

之后就可以在私仓中搜到了:

搜索发布结果

7、发布动态共享包 HSP 包

动态共享包 HSP 包不能直接发布在ohpm-repo内,需要先转化为 .tgz 包,转换方法见:编译HSP模块。TGZ 包的发布流程同 HAR 一致。
执行 ''ohpm publish <TGZ 包路径>'' 命令发布 TGZ 包,< TGZ 包路径> 指向的文件后缀需为 .tgz 文件的具体路径。例如执行以下命令:

ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpmohpm 
publish demo.tgz

或在命令行中配置参数 --publish_registry 使用,例如以下命令:

ohpm publish demo.tgz --publish_registry <ohpm-repo私仓管理地址>/repos/ohpm

8、Web页面发布

以上是使用命令行工具发布,也可以使用Web页面发布。在Web页面用管理员账号登录ohpm-repo私仓管理地址,在个人中心 > 仓库管理中,点击管理三方包 > 上传三方包,包的后缀名必须为 .har 或者 .tgz。

管理三方包
上传三方包

三、发布成功后HAR包的导入和使用

1、从ohpm-repo获取HAR包 @wxqos/wxqcolor

可以为所有项目配置该私有仓,例如执行以下命令:

ohpm config set registry http://localhost:8088/repos/ohpm
ohpm install

或者在命令行中配置参数 --registry 使用,例如以下命令:

ohpm install @wxqos/wxqcolor --registry http://localhost:8088/repos/ohpm

输出以下信息,表示导入成功:

<git> ohpm install @wxqos/wxqcolor --registry http://localhost:8088/repos/ohpm
ohpm INFO: MetaDataFetcher fetching meta info of package '@wxqos/wxqcolor' from http://localhost:8088/repos/ohpm/
ohpm INFO: fetch meta info of package '@wxqos/wxqcolor' success http://localhost:8088/repos/ohpm/@wxqos/wxqcolor

oh-package-lock.json5 中自动导入信息:

    "@wxqos/wxqcolor@1.0.0": {
      "name": "@wxqos/wxqcolor",
      "version": "1.0.0",
      "integrity": "sha512-yEZi/38AayT9zGjJxJWJxviuB9F4F7W6O9se2Ok49CYxVGiPDRSP+1qSWjRdj9WN9N9sv3++t6pOCRJl4foqYw==",
      "resolved": "http://localhost:8088/repos/ohpm/@wxqos/wxqcolor/-/@wxqos/wxqcolor-1.0.0.har",
      "registryType": "ohpm"
    }

项目中导入成功截图:


远程导入成功

2、HAR包的使用

pages引用:

import { WXQColor, firstPublicFuncColor } from '@wxqos/wxqcolor'

代码使用参考:

this.CustomText('主题-红色 firstColor', WXQColor.firstColor)
this.CustomText('文字-重要 textMajorColor', WXQColor.textMajorColor)
this.CustomText('激励、价格等高亮 textLightColor', WXQColor.textLightColor)
this.CustomText('文字-不可用 textUnableColor', WXQColor.textUnableColor)
this.CustomText('-------------------------', WXQColor.lineColor)
this.CustomText('自定义内部主颜色 firstInternalFuncColor', WXQColor.firstInternalFuncColor())
this.CustomText('自定义外部主颜色 firstPublicFuncColor', firstPublicFuncColor())

使用效果截图

官方文档参考:ohpm-repo私仓搭建工具

相关文章

网友评论

      本文标题:鸿蒙HarmonyOS ohpm-repo私仓搭建和发布HAR

      本文链接:https://www.haomeiwen.com/subject/hqzjjjtx.html