搭建npm私有鏡像倉庫,天下苦於npm build久矣
- 2019 年 11 月 29 日
- 筆記
前言
當你的研發團隊越來越大,或是你無法忍受node超慢的構建時你可以考慮繼續讀下去,給大家推薦一個基於Verdaccio相對較完整的解決方案。
由於環境的原因,我們直接去 npmjs.org 下載就不要考慮了,可以將npm config set registry=https://registry.npm.taobao.org 可以緩解一部分, 但是如果你有些自己公司訂製的npm包如何在公司內分享呢,這個時候你就需要一個npm私服了.
Verdaccio 是什麼
Verdaccio 是一個簡單的零配置的node.js輕量私有的npm代理倉庫。
verdaccion能做什麼
1. 快取npmjs.org倉庫
npm安裝緩慢大家都知道,可以使用它來減少延遲(大概「慢」的npmjs.org每個軟體包/版本僅連接一次)並提供有限的故障轉移(如果使用npmjs.org掛掉了,我們依然可以通過快取獲取到相應的包)
2. 私有倉庫
如果您想在公司中使用npm軟體包系統而又不將所有程式碼發送給公眾,請使用私有軟體包,就像使用公共軟體包一樣容易。
3. 鏈接多個倉庫
如果您在組織中使用多個npm倉庫,並且需要在一個項目中從多個來源獲取軟體包,則可以利用Verdaccio的上行鏈路功能,將多個倉庫鏈接起來並從一個端點獲取。
4. 覆蓋公共軟體包
如果要使用某個第三方軟體包的修改版本(例如,您發現了一個錯誤,但維護者尚未接受請求請求),則可以使用相同的名稱在本地發布該版本。 詳細請看這裡。
5. 端到端測試
事實證明,Verdaccio是一個輕量級倉庫,可以在幾秒鐘內啟動,對於任何CI來說都足夠快。 許多開放源程式碼項目都使用verdaccio進行端到端測試.
注: 功能3、4、5需要你自己去探索。
安裝
注: Verdaccio 支援多種安裝方式,甚至包含charts包
前置條件
1. Node版本
- [email protected] Node v6.12 是最低的版本.
- [email protected] or [email protected] Node 8.x (LTS "Carbon") 是最低的版本.
2. npm >=4.x or yarn
官方強烈建議使用最新的node包管理客戶端 > [email protected] | [email protected] | [email protected]
3. Web介面 支援 Chrome, Firefox, Edge, and IE11 browsers.
Docker-compose方式部署
可以直接參考我們歸檔的版本傳送門

是時候捨棄cnpm了,希望你可以享受verdaccio.
更多
- 請參考verdaccio官方文檔
- 提速node的構建速度,建議啟用多階段構建
參考鏈接
- https://medium.com/engenharia-noalvo/ways-to-have-your-private-npm-registry-and-a-final-diy-solution-eed001a88e74
- https://verdaccio.org/docs/en/what-is-verdaccio

