verdaccio搭建

前言

无论什么开发语言都需要有包管理工具,对代码片段进行分发,且当处于企业化开发场景下,我们一般都避免不了私有仓的创建。npm作为nodeJS下的包管理工具,我们可以使用verdaccio进行私有npm仓库的搭建。

verdaccio安装

使用npm全局安装即可.

1
2
npm install -g verdaccio
verdaccio -h

安装成功后直接运行verdaccio,在终端日志中找到config.yaml配置文件的路径。修改一些基本配置,如web页面标题等。对于外部nginx而言,我们需要的是子路径的配置,用来于设置反向代理时子路径的一一对应。

1
url_prefix: '/verdaccio/'

对应nginx反向代理设置如下:

1
2
3
4
5
6
location ~ ^/verdaccio/(.*)$ {
proxy_pass http://127.0.0.1:4873/$1;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}

当然你也可以直接指定配置文件进行运行:

1
verdaccio --config /home/user/verdaccio/config.yaml

进程常驻

我们使用forever进行常驻,未安装的则需提前安装。

1
2
sudo npm install -g forever #可选
forever start `which verdaccio`

其它

verdaccio的使用主要有几个注意事项

  1. 建议直接设置为registry
    1
    npm set registry https://www.svinvy.com/verdaccio/
  2. 设置package访问权限,详见官网
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    packages:
    # scoped packages
    '@scope/*':
    access: $all #跟all相对的有authenticated,即需登录认证
    publish: $all
    proxy: server2#移除proxy则代表不使用registry.npmjs.org等公有仓库备用

    'private-*':
    access: $all
    publish: $all
    proxy: uplink1

    '**':
    access: $all
    publish: $all
    proxy: uplink2
  3. 用户注册
    1
    npm adduser --registry https://www.svinvy.com/verdaccio/