npm私服安裝教程 – verdaccio 入門

savokiss發表於2019-01-19

0x00 前言

最近想搭一個 npm 私服,找了一下網上的資料,發現了兩個專案:

sinopia 之前好像很火,但是作者棄坑了,從專案裡的一個issue(見文末)發現,有人fork了一個專案,就是本文要使用的 verdaccio,目前該專案在積極維護中
cnpm 看起來雖然最近有commit,但是已經一年沒有 release了,而且安裝比較複雜

最後選擇了verdaccio。

Verdaccio is a lightweight private npm proxy registry built in Node.js

0x01 安裝

全域性安裝

$ sudo npm install -g verdaccio

筆者安裝的是 verdaccio@3.2.0,需要 node > 6.12.0, npm >=3.x

我們使用 pm2 來管理程式,需要全域性安裝 pm2

如果 npm 安裝失敗可以使用 yarn

$ sudo npm install -g pm2

啟動 verdaccio

$ sudo pm2 start verdaccio

然後可以檢視 程式啟動情況

$ pm2 ls

配置nginx反向代理

由於 verdaccio 預設是啟動在 4873 埠,方便起見,配置 nginx 反向代理到該埠
如果需要檢視 verdaccio 的埠號,可以用 pm2 ls 檢視到 verdaccio 的 pid,然後使用:

$ netstat -nap | grep <pid>

檢視佔用的埠號

下面貼出 nginx 配置,centos 的nginx 配置檔案在 /etc/nginx/conf.d/
新建一個配置檔案,然後使用如下內容即可

server {
  listen 80;
  server_name registry.npm.your.server;
  location / {
    proxy_pass              http://127.0.0.1:4873/;
    proxy_set_header        Host $host;
  }
}

重啟 nginx

$ sudo nginx -s reload

0x02 使用

專案中配置

訪問:http://registry.npm.your.server 可以看到 verdaccio 已經安裝完成。

然後就可以釋出你的 npm 包了~

方便起見,可以在專案目錄下新建 .npmrc 檔案,寫入如下內容:

registry=http://registry.npm.your.server

然後專案安裝的包就會先從你自己的npm下載,如果找不到就會找官方npm源

修改上游npm源

由於 verdaccio 預設使用的是npm官方的源,你可以改成淘寶的源

他的配置檔案在 /home/<username>/.config/verdaccio/config.yaml

其中有個 uplinks 欄位

uplinks:
  npmjs:
  url: https://registry.npmjs.org/ 

將 url 改為 https://registry.npm.taobao.org/ 即可

參考文章

相關文章