搭建私有npm私庫(使用verdaccio)


一、為什么要搭建npm私庫

原因:
1)公司內部開發的私有包,統一管理,方便開發和使用;
2)安全性,由於公司內部開發的模塊和一些內容並不希望其他無關人員能夠看到,但是又希望內部能方便使用;
3)加速,自己搭建npm 服務器,本身可以自帶常用package的緩存,而npm 的速度有些感人,自建的服務器會緩存下載過的包,能節省時間;

二、為什么用verdaccio 替換 sinopia

為什么選擇verdaccio,因為sinopia到2015年10月后,已經早不維護了,似乎作者不見了蹤影。而verdaccio是sinopia的一種新的web【react】端的實現形式,並且目前一直在維護中。

三、搭建verdaccio

基礎環境:
[root@monitor-cicd ~]# uname -r
3.10.0-862.11.6.el7.x86_64
[root@monitor-cicd ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)
[root@monitor-cicd ~]# node -v
v10.14.2

3.1 安裝verdaccio

使用npm 全局安裝即可
npm install -global verdaccio --unsafe-perm
#--unsafe-perm  說明:npm會有生命周期,某個包會有生命周期來執行一些東西,安全起見會自動降級導致沒有權限執行一些操作,通過--unsafe-perm參數來解鎖該限制。

npm報權限錯誤參考案例:https://blog.csdn.net/weiguang1017/article/details/78813901 

3.2 修改配置文件

安裝完需要啟動(執行 /application/nodejs/bin/verdaccio )一下,才能生成配置文件。
vim /root/.config/verdaccio/config.yaml
需要改動2處:
1)npm鏡像下載地址:
舊:url: https://registry.npmjs.org/  (國外)
新:url: http://registry.npm.taobao.org/  (阿里雲)

2)指定ip端口:

在配置文件末尾添加如下:(因為默認是localhost:4873  (弊端:只能在本機訪問))
#指定ip端口
listen: 0.0.0.0:4873

其余解釋:

storage: ./storage   # 所有包的緩存目錄
plugins: ./plugins     # 插件目錄
file: ./htpasswd    # 用戶信息存儲目錄

3.2 使用pm2 守護verdaccio進程

安裝pm2並使用pm2啟動verdaccio,使用pm2托管的進程可以保證進程永遠是活着的,嘗試通過kill -9去殺verdaccio的進程發現殺了之后又自動啟起來。推薦使用此種方式啟動verdaccio。
安裝pm2:
npm install -g pm2 --unsafe-perm

使用pm2啟動verdaccio:

/application/nodejs/bin/pm2 start /application/nodejs/bin/verdaccio

3.3 將當前npm服務指向本地

npm set registry http://127.0.0.1:4873
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM