如何用Verdaccio搭建一個(gè)企業(yè)級(jí)私有Npm庫(kù)

前沿
當(dāng)公司項(xiàng)目做得比較多的時(shí)候,我們就會(huì)自己孵化出一套內(nèi)部的業(yè)務(wù)組件庫(kù),這些企業(yè)級(jí)的組件我們并不想上傳到公共的npm倉(cāng)庫(kù),這個(gè)時(shí)候企業(yè)級(jí)私有npm就比較重要了,Verdaccio可以非常簡(jiǎn)單,且零配置的幫我們搭建企業(yè)級(jí)私有npm庫(kù)
官網(wǎng)地址:https://verdaccio.org/
// 目前github的star是13K
github地址:https://github.com/verdaccio/verdaccio
安裝
// 全局安裝
npm install -g verdaccio
// 安裝完verdaccio后
// 命令行執(zhí)行verdaccio,我們看到如下結(jié)果
verdaccio

verdaccio結(jié)果
從上面的截圖我們看到verdaccio已經(jīng)零配置安裝成功了,并且輸出了它的配置文件位置、啟動(dòng)的服務(wù)地址等信息,默認(rèn)是在4873端口啟動(dòng),我們?cè)跒g覽器中輸入http://localhost:4873,就可以看到默認(rèn)啟動(dòng)界面。

啟動(dòng)界面
配置修改
我們打開
/Users/storm/.config/verdaccio/config.yaml目錄下的文件,以下是我整理的默認(rèn)的配置
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這個(gè)屬性,目前是所有人都可以訪問(wèn),然后注冊(cè)過(guò)的人可以上傳npm包的,$all代表沒有任何限制,$authenticated代表注冊(cè)過(guò)的人。
packages:
'@*/*':
access: $authenticated
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $authenticated
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
通過(guò)以上的配置,這樣就只有團(tuán)隊(duì)注冊(cè)過(guò)的人,才有權(quán)限訪問(wèn)了。
基本使用
// 注冊(cè)用戶,按操作提示,一步一步完成
npm adduser --registry http://localhost:4873/
// 指定本地npm的源為私有庫(kù)
npm set registry http://localhost:4873/
// 或者安裝依賴的時(shí)候,指定私有庫(kù)安裝
npm install --registry http://localhost:4873
后面的發(fā)布npm包,登錄這些的操作就和公網(wǎng)npm一樣的操作流程。























