一、背景
-
由于公司项目,日益增多。
-
业务代码重复使用。
-
组件化、模块化、工程化、团队建设等方面考虑。
-
公司代码,不便开源。
二、技术方案
目前其实有好几种方案都可以搭建 私有源(私有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 文档