在組件化開(kāi)發(fā)中,私倉(cāng)的作用不言而喻。例如在鴻蒙項(xiàng)目中如果不想本地引用har包、hsp包,就要發(fā)布到私倉(cāng)中引用使用,如果發(fā)布到華為公倉(cāng)中使用是不安全的。本篇文章分享下如何在鴻蒙HarmonyOS NEXT下搭建屬于自己的私倉(cāng),以及如何使用。
私倉(cāng)安裝和啟動(dòng)
ohpm-repo 是一個(gè)搭建輕量級(jí)的ohpm私倉(cāng)服務(wù)的工具。支持單點(diǎn)部署和多實(shí)例部署。單點(diǎn)部署:ohpm-repo 僅部署在一臺(tái)機(jī)器上使用。多實(shí)例部署:ohpm-repo 會(huì)部署到多臺(tái)機(jī)器中,具有相同的配置內(nèi)容,并且共享數(shù)據(jù)存儲(chǔ)空間。
如何安裝
ohpm-repo 依賴(lài)于 node 運(yùn)行,支持 node.js 18.x 及以上版本,請(qǐng)?zhí)崆鞍惭b nodejs,并完成環(huán)境變量的配置。Node.js安裝請(qǐng)參考 Node.js官方網(wǎng)站。
1.下載
ohpm-repo點(diǎn)擊下載
獲取私倉(cāng)工具包,目前最新版本是ohpm-repo 5.0.7
2.配置
在啟動(dòng) ohpm-repo 前還需要先按照如下方式完成配置修改: 進(jìn)入 ohpm-repo 解壓目錄的 conf 目錄內(nèi),打開(kāi) config.yaml 配置文件。
檢查 listen 配置,默認(rèn)配置為 localhost:8088 ,表示僅支持監(jiān)聽(tīng)本機(jī)地址;如果希望其他機(jī)器通過(guò)ip/域名訪(fǎng)問(wèn),則建議修改 listen 配置為ohpm-repo部署機(jī)器的ip:
listen: <部署ohpm-repo機(jī)器的ip>:8088
3.檢查
檢查deploy_root配置:如果不配置,會(huì)存儲(chǔ)在默認(rèn)地址中。該路徑不允許配置為ohpm-repo解壓根目錄。
檢查db和store配置,db是元數(shù)據(jù)存儲(chǔ)的配置項(xiàng),store是文件存儲(chǔ)的配置項(xiàng)。db支持fileDB本地存儲(chǔ)和mysql數(shù)據(jù)庫(kù)存儲(chǔ),store支持local storage本地存儲(chǔ),sftp storage存儲(chǔ)和custom storage 自定義插件存儲(chǔ)。db和store不能隨意搭配,需要符合表1的匹配規(guī)范。配置文件默認(rèn)db使用fileDB本地存儲(chǔ),store使用local storage本地存儲(chǔ)。
| db:元數(shù)據(jù)存儲(chǔ) | 與db所適配的store類(lèi)型 |
|---|---|
| fileDB | local storage |
| mysql | local storage,sftp storage, custom storage |
檢查是否配置了 store.config.server,用于指定ohpm-repo倉(cāng)庫(kù)內(nèi)容的下載地址、不配置取默認(rèn)值,詳情見(jiàn):server: 倉(cāng)庫(kù)內(nèi)容的下載地址。如果listen的host為0.0.0.0,且本機(jī)存在多個(gè)網(wǎng)絡(luò)接口,那么該值必須配置,建議手動(dòng)修改 host 為本機(jī)指定的 ip/域名,例如 listen 為 0.0.0.0:8088,故 server 需配置為 http://<指定部署機(jī)器的ip/域名>:8088。
4.安裝
進(jìn)入ohpm-repo工具包解壓目錄中的 bin 目錄下,執(zhí)行安裝命令:
ohpm-repo install

安裝成功后,必須根據(jù)給出的提示信息刷新部署目錄的環(huán)境變量,針對(duì) Window 系統(tǒng)和 Linux/Mac 系統(tǒng),有不同處理方式:
Window 系統(tǒng): 關(guān)閉當(dāng)前窗口,重新開(kāi)啟一個(gè)窗口。
Linux 系統(tǒng)或 Mac 系統(tǒng): 在命令行中執(zhí)行刷新命令:當(dāng)shell為bash時(shí)執(zhí)行source ~/.bashrc 或者 . ~/.bashrc ;當(dāng)shell為zsh時(shí)執(zhí)行source ~/.zshrc 或者 . ~/.zshrc 。
如何啟動(dòng)
ohpm-repo start

說(shuō)明
ohpm-repo 首次啟動(dòng)時(shí),默認(rèn)創(chuàng)建一個(gè)管理員賬號(hào),賬號(hào)名稱(chēng):admin,密碼:12345Qq! 。該賬號(hào)在首次登錄時(shí),需要修改其密碼,請(qǐng)修改密碼后,重新登錄該賬號(hào)。
從ohpm-repo獲取三方庫(kù)
注冊(cè)私服地址
ohpm config set registry <配置的ohpm-repo私倉(cāng)服務(wù)地址>/repos/ohpm
ohpm install

注意:倉(cāng)庫(kù)地址需要把華為公倉(cāng)地址添加上
將三方庫(kù)發(fā)布到 ohpm-repo
使用命令行工具發(fā)布
1、生成公、私鑰
利用工具 ssh-keygen 生成公、私鑰,可執(zhí)行以下命令:
ssh-keygen -m PEM -t RSA -b 4096 -f <your_key_path>
注意:OHPM 包管理器只支持加密密鑰認(rèn)證,請(qǐng)?jiān)谏晒借€時(shí)輸入密碼。
2、私倉(cāng)添加.pub內(nèi)容
登錄 ohpm-repo 私倉(cāng)管理地址,單擊主頁(yè)右上角的個(gè)人中心,新增公鑰,將公鑰文件(<your_key_path>.pub)的內(nèi)容粘貼到公鑰輸入框中。

3、設(shè)置私鑰路徑
打開(kāi)命令行工具,執(zhí)行如下命令設(shè)置私鑰路徑。
ohpm config set key_path <your_key_path>
4、配置發(fā)布碼到 .ohpmrc
登錄 ohpm-repo 私倉(cāng)管理地址,單擊主頁(yè)右上角的個(gè)人中心,復(fù)制發(fā)布碼。
將發(fā)布碼配置到 .ohpmrc 文件中,可執(zhí)行如下命令:

5、發(fā)布har或者h(yuǎn)sp
靜態(tài)共享包HAR包
ohpm publish demo.har
動(dòng)態(tài)共享包 HSP 包
動(dòng)態(tài)共享包 HSP 包不能直接發(fā)布在ohpm-repo內(nèi),需要先轉(zhuǎn)化為 .tgz 包。
ohpm publish demo.tgz
注意:如果本地.ohpmrc文件沒(méi)有設(shè)置_auth,每次ohpm publish需要輸出一次密碼。
ohpmrc配置詳細(xì)說(shuō)明
以Mac為例,簡(jiǎn)單粗暴創(chuàng)建并打開(kāi)本地隱藏文件.ohpmrc文件,添加以下信息
registry=https://ohpm.openharmony.cn/ohpm,私服地址
strict_ssl=true
publish_registry=私服地址
log_level=info
fetch_timeout=60000
max_concurrent=50
retry_times=1
retry_interval=1000
publish_id=F8C2BAB936
key_path=/Users/fyg/.ssh_ohpm/mykey
//私服地址/:_auth=_auth值
使用Web頁(yè)面發(fā)布
在Web頁(yè)面用管理員賬號(hào)登錄ohpm-repo私倉(cāng)管理地址,在個(gè)人中心 > 倉(cāng)庫(kù)管理中,點(diǎn)擊管理三方包 > 上傳三方包,包的后綴名必須為 .har 或者 .tgz。


關(guān)注公眾號(hào):移動(dòng)端開(kāi)發(fā)的那些事