sinopia的部署和使用

2022-09-18 11:42:08 字數 3921 閱讀 8587

隨著時間的推移,前端的工程日益龐大,越來越複雜的依賴包需要包管理器來維護。相比搭建沒有優勢bower倉儲,更好的方式是在區域網搭建npm倉儲,維護專案中package.json中的各個外掛程式的版本即可維護專案依賴。

sinopia是乙個部署簡易的可以實現github倉儲私有化的npm元件。

注:本文sinopia的版本為1.4。

如上圖:

客戶端產生npm請求後,傳送到伺服器(外網需要通過閘道器)。

用pm2啟動sinopia集群,可以自動負載均衡。當請求到sinopia後,他會先進行許可權驗證(如果設定),通過驗證之後就在本地檔案系統中尋找對應的npm包,如果不存在則向上游鏈結(uplinks)配置的位址發請求。

安裝較為簡單,本文件所有的安裝都在root許可權下進行。

node版本:node-v6.2.0-linux-x64.tar.gz

安裝過程略。

請注意,離線安裝時,壓縮包要在linux下解壓,否則npm無法使用。

node安裝成功並設定軟連線後,因為伺服器在內網,所以先要設定npm**。

//設定npm** 

npm config set proxy=""

//設定**國內映象

npm config set registry="" --可以預設npmjs

//安裝sionpia(不加後邊引數會在node-gyp編譯失敗)

npm install sinopia --no-optional --no-shrinkwrap

//將sionpia配置軟連線

ln -s /root/node_modules/sinopia/bin/sinopia /usr/local/bin/sinopia

//測試啟動

sinopia

如果安裝成功,會出現以下log,則證明安裝成功。

//安裝pm2 

npm install pm2 -g

//配置軟連線 (安裝出現警告可能會需要)

ln -s /root/node/node-v6.2.0-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2

//測試是否安裝成功

pm2

如果安裝成功,則會出現pm2圖示及命令。

可以程序啟動或pm2啟動。

程序啟動: sinopia -l

pm2啟動: pm2 startwhich sinopia

請注意,當用pm2啟動時,不要打錯單引號的全形半形。並且啟動的埠需要在配置檔案中配置:

vi /root/.config/sinopia/config.yaml

在最後一行中加入:

listen: 192.168.0.1:1234

配置檔案目錄:

config.yaml    ------sinopia的配置檔案

htpasswd    ------存放使用者賬戶資訊的檔案,密碼通過sha1、base64加密

storage    ------存放npm包及快取包的資料夾

以上檔案的目錄為(root使用者下):/root/.config/sinopia/

storage: /root/.local/share/sinopia/storage
先在客戶端建立發布許可權的賬戶(假設為test,使用者名稱不能有大寫),然後為該賬戶設定發布許可權:

packages:

'*':

# allow all users (including non-authenticated users) to read and

# publish all packages

## you can specify usernames/groupnames (depending on your auth plugin)

# and three keywords: "$all", "$anonymous", "$authenticated"

access: $all

# allow all known users to publish packages

# (anyone can register by default, remember?)

publish: test

# if package is not **ailable locally, proxy requests to 'npmjs' registry

proxy: npmjs

auth:

htpasswd:

file: ./htpasswd

# maximum amount of users allowed to register, defaults to "+inf".

# you can set this to -1 to disable registration.

max_users: -1

max_users為最大使用者數量,值為-1則無法通過adduser建立賬號。

日誌為檔案儲存。

"http://host:port"為sinopia服務位址。建議使用nrm(nrm 是乙個 npm 源管理器)切換倉儲位址。

維護需要用有發布許可權的賬號,進行包的發布。發布包需要先登入:

npm login

然後根據提示輸入:

username: test

password:

email: (this is public) [email protected]

logged in as test on

顯示以上內容為登入成功。登入成功後,在包的資料夾中輸入以下命令即可發布:

npm publish

顯示 + name@version 即為發布成功,成功後也可瀏覽器進入 檢視。

在專案中,我們要配置好package.json。

同時,我們的版本管理也需要更加嚴謹,維護好版本好的同時也要寫好更新說明,更新說明寫在元件的changelog.md中,這樣方便在瀏覽器瀏覽 的時候檢視。

版本號請遵循: semver 2.0 的語義化版本規則。

使用sinopia搭建自己的npm服務

隨著 的積累,感覺有必要自己搭建乙個npm服務,對自己的 庫進行管理。我去強大的github上搜尋了一下,發現了sinopia,純nodejs解決方案,不需要什麼依賴的軟體包。果然是簡單有效的辦法,於是根據教程嘗試了一下,基本沒遇到什麼坎就弄好了。首先安裝sinopia npm install g ...

helm部署和使用

helm是kubernetes的乙個包管理工具,用來簡化kubernetes應用的部署和管理。可以把helm比作centos的yum工具。helm有如下幾個基本概念 chart 是helm管理的安裝包,裡面包含需要部署的安裝包資源。可以把chart比作centos yum使用的rpm檔案。每個cha...

Kafka集群部署和使用

解壓 tar zxvf kafka 2.11 0.11.0.0.tgz c opt module 重新命名 mv kafka 2.11 0.11.0.0 kafka在 opt module kafka 目錄下建立 logs 資料夾 mkdir logs修改配置檔案 cd config vi serv...