阿里云服务器 使用 verdaccio 搭建 私有npm

988 阅读2分钟

一、背景

  1. 由于公司项目,日益增多。

  2. 业务代码重复使用。

  3. 组件化、模块化、工程化、团队建设等方面考虑。

  4. 公司代码,不便开源。

二、技术方案

目前其实有好几种方案都可以搭建 私有源(私有npm)

例如:

  • npm 付费
  • cnpm
  • git+ssh
  • sinopia
  • nexus
  • verdaccio
  • ...

这里我选择使用 verdaccio 来搭建 私有源(私有npm)

理由如下:

  • 安装简单
  • 配置简单
  • 开箱即用

三、准备工作

  • 安装 nodejs
  • 安装 pm2

四、安装并配置 verdaccio

1、安装 verdaccio

执行 npm install --global verdaccio 命令

npm 会自动安装 verdaccio

2、启动 verdaccio,并查看信息

执行 verdaccio 命令

执行后会打印出一些信息,例如 配置文件目录、服务地址等

warn --- config file - /root/.config/verdaccio/config.yaml

warn --- Verdaccio started

warn --- Plugin successfully loaded: verdaccio-htpasswd

warn --- Plugin successfully loaded: verdaccio-audit

warn --- http address - http://localhost:4873/ - verdaccio/4.8.1

3、修改 verdaccio 配置项

执行 vim /root/.config/verdaccio/config.yaml 打开配置文件

在不考虑 用户权限 的情况下,只需要在末尾 添加一行 listen: 0.0.0.0:4873

没有配置该设置,只能本机访问。

这里还要考虑防火墙以及安全组的配置,皆需要开放 4873 端口

4、启动 verdaccio

执行 pm2 start verdaccio 即可

5、访问 verdaccio

在浏览器中输入 http:xxx.xxx.xxx.xxx:4873/ 即可访问 verdaccio 了

五、使用 verdaccio

离开了 阿里云服务器 的场景

我们需要在自己的电脑上安装 nrm 用来管理 源

执行 nrm add <name:源的名称> http:xxx.xxx.xxx.xxx:4873/ 来添加一个一个源

例如:nrm add myVerdaccio http:xxx.xxx.xxx.xxx:4873/

执行 nrm use myVerdaccio 切换到私有源,这里可以通过 nrm test 来测试一下是否可以连通

执行 npm adduser 注册用户并登录,如果已经有了账号,可以直接登录

执行 npm publish 就可以上传 当前的 软件包了

在浏览器 访问 http:xxx.xxx.xxx.xxx:4873/ 就可以看见 当前 已有的包了

六、关于使用了私有源后是否需要频繁切换源

verdaccio 有上链的功能,可以通过设置 上链 来安装 其他源的软件包

执行 vim /root/.config/verdaccio/config.yaml 打开配置文件

找到 uplinks 里面默认会设置一个上链,就是 npm 的源地址,需要设置其他的,可以按照示例进行修改或者增加,具体的设置,可以查看 verdaccio 文档