切換語言為:簡體
docker搭建私服npm庫,並拉取私服包

docker搭建私服npm庫,並拉取私服包

  • 爱糖宝
  • 2024-11-09
  • 2036
  • 0
  • 0

在公司中,我們有時候寫的公共的程式碼,需要提取出來,此時需要一個私服npm庫,把這個公共程式碼做成一個包,然後在釋出到自己的私服npm庫上,就可以單獨維護了。

這裏我用docker for windows演示一下,首先是建立3個目錄conf,storage,plugins

docker搭建私服npm庫,並拉取私服包

然後在conf目錄中新建config.yaml檔案

storage: /verdaccio/storage
plugins: /verdaccio/plugins
web:
title: Verdaccio
auth:
htpasswd:
file: /verdaccio/conf/htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
server:
keepAliveTimeout: 60
logs:
-{type: stdout, format: pretty, level: http}

接著就可以跑docker容器了: docker run -d --name verdaccio -p 4873:4873 -v ./conf:/verdaccio/conf -v ./storage:/verdaccio/storage -v ./plugins:/verdaccio/plugins verdaccio/verdaccio

docker搭建私服npm庫,並拉取私服包 跑起來後,先根據提示建立使用者npm adduser --registry http://localhost:4873/,然後登入即可。

登入後就建立自己的npm包,這裏我隨便寫一些,內容是指向index.js。package.json注意包的名字,前面可以是你的公司名稱,後面是具體包名。

docker搭建私服npm庫,並拉取私服包

再建立.npmignore,忽略node_modules

docker搭建私服npm庫,並拉取私服包

接著建立.npmrc,告訴它把包上傳到指定的私服npm地址上 

docker搭建私服npm庫,並拉取私服包

接著,就可以執行npm publish --registry http://localhost:4873/把包推送到私服npm上,重新整理頁面,就可以看到這個包了。 docker搭建私服npm庫,並拉取私服包

接著到另一個專案中測試能不能拉到這個包。我看網上其他人都是教設定npm set registry http://localhost:4873後,再拉取。其實這樣是不太好的,因為這樣直接修改了你的映象源地址,會導致你在拉取其他網際網路包時失敗。

正確的做法是先建立.npmrc,然後指定關於這個名字下的所有包都要到這個伺服器拉取:

docker搭建私服npm庫,並拉取私服包

然後執行命令安裝npm i @tianping/node, 可以看到拉取成功了 

docker搭建私服npm庫,並拉取私服包

作者:天平
連結:https://juejin.cn/post/7435096176410165274

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.