基於verdaccio的npm私有倉庫搭建和使用總結

weixin_33859844發表於2018-03-20

一、選擇

verdaccio 替換 sinopia

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

環境搭建

請參考verdaccio環境搭建

二、環境搭建好之後,如何使用

首先下載nrm [npm registry manager]

npm i -g nrm 
nrm add verdaccio http://npm.xxxx.com
nrm use verdaccio

其次新增user

npm set registry http://npm.xxxx.com
npm adduser --registry http://npm.xxxx.com
username:xxxx
password:xxxx
email: xxxx

三、 價值

1、安全性角度考慮:如果我們想要一個公共元件庫,那麼把元件放到我們私有庫中,只有內網可以訪問,這樣可以避免元件中業務的洩露;
2、模組複用性角度考慮:多個專案之間有重複的共有模組,當需要修改模組,通過簡單的統一的配置就可以實現;提煉後的元件有專門的地址可以用來檢視,方便使用,在後期專案的引用中也能節約開發成本
3、npm包下載速度角度考慮:使用內部的地址,能夠在開發下載node包的同時,將關聯的依賴包快取到verdaccio伺服器中,下載速度更快;
4、專案開發中的路勁角度考慮:在專案開發中書寫程式碼更整潔簡練,不需書寫更長的相對路徑;
5、公司技術沉澱角度考慮:知識的沉澱,在公司業務相關的應用上尤佳;
6、版本角度的考慮:相當於一個容器,統一管理需要的包,保持版本的唯一;
7、開發效率角度考慮:使私有公共業務或元件模組能以共有包一樣的管理組織方式,保持一致性,提高開發效率;

四、使用規則

1、在git上新建一個私有倉庫組@xxx,本質是為了避免和外來node包衝突
2、然後再在@xxx中新建私有專案,比如utils
3、版本問題【儘可能相容低版本,未相容部分,需要告知為什麼不能實現】
4、限制釋出者許可權、對@xxx中的專案進行命名稽核,以及更新迭代程式碼的稽核
5、所有的釋出私有包,必須走git流程,不能私底下違規釋出
6、還在完善中……

五、 實踐截圖:

1、git 上面的group以及專案


2044212-8b46725cf295e788.png

2、git clone git地址,並進行utils私有庫專案的開發


2044212-b102028d05259a3a.png

3、utils私有庫專案釋出
2044212-8a267e8d6dac1dfb.png

2044212-5fd68397da50d728.png

4、utils私有庫專案的使用
yarn add @xhh/utils ,之後正常在專案中引用即可


2044212-c331972f9685c8cd.png

2044212-b68572178fa0f28e.png

相關文章