如何用Verdaccio搭建一個企業(yè)級私有Npm庫
前沿
當公司項目做得比較多的時候,我們就會自己孵化出一套內(nèi)部的業(yè)務組件庫,這些企業(yè)級的組件我們并不想上傳到公共的npm倉庫,這個時候企業(yè)級私有npm就比較重要了,Verdaccio可以非常簡單,且零配置的幫我們搭建企業(yè)級私有npm庫
官網(wǎng)地址:https://verdaccio.org/
// 目前github的star是13K
github地址:https://github.com/verdaccio/verdaccio
安裝
// 全局安裝
npm install -g verdaccio
// 安裝完verdaccio后
// 命令行執(zhí)行verdaccio,我們看到如下結果
verdaccio
verdaccio結果
從上面的截圖我們看到verdaccio已經(jīng)零配置安裝成功了,并且輸出了它的配置文件位置、啟動的服務地址等信息,默認是在4873端口啟動,我們在瀏覽器中輸入http://localhost:4873,就可以看到默認啟動界面。
啟動界面
配置修改
我們打開
/Users/storm/.config/verdaccio/config.yaml目錄下的文件,以下是我整理的默認的配置
storage: ./storage
plugins: ./plugins
web:
title: Verdaccio
auth:
htpasswd:
file: ./htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
server:
keepAliveTimeout: 60
middlewares:
audit:
enabled: true
logs:
- { type: stdout, format: pretty, level: http }
我們主要修改packages這個屬性,目前是所有人都可以訪問,然后注冊過的人可以上傳npm包的,$all代表沒有任何限制,$authenticated代表注冊過的人。
packages:
'@*/*':
access: $authenticated
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $authenticated
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
通過以上的配置,這樣就只有團隊注冊過的人,才有權限訪問了。
基本使用
// 注冊用戶,按操作提示,一步一步完成
npm adduser --registry http://localhost:4873/
// 指定本地npm的源為私有庫
npm set registry http://localhost:4873/
// 或者安裝依賴的時候,指定私有庫安裝
npm install --registry http://localhost:4873
后面的發(fā)布npm包,登錄這些的操作就和公網(wǎng)npm一樣的操作流程。