九、华为云耀云服务器L实例私有库搭建verdaccio:
Verdaccio 是一个简单的、零配置本地私有 npm 软件包代理注册表。Verdaccio 开箱即用,拥有自己的小型数据库,能够代理其它注册表(例如 npmjs.org),缓存下载的模块。
搭建团队的私有仓库,保证团队组件的安全维护和私密性,提高了公共化的效率,降低团队的开发成本。
1. npm简单安装:
js
# npm全局安装verdaccio
npm i -g verdaccio
# 执行verdaccio
verdaccio // 发现提示命令找不到
# 查找verdaccio位置
find / -name verdaccio
# 执行verdaccio
/usr/local/node/bin/verdaccio
2. 安装pm2启动verdaccio服务:
传统Node服务管理的痛点: |
---|
在工作中遇到当服务器实例重启后,需要一个个去重新启动每个Node服务,不仅管理繁琐、效率低,而且容易遗漏开启一些Node服务。 |
pm2 是一个带有负载均衡功能的 Node 应用的进程管理器工具,可以利用它来简化很多 node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,用处就是监控生产环境下的Node服务程序运行的状态。
js
# 安装pm2
npm install -g pm2
# 执行pm2
pm2 // 发现提示命令找不到
# 查找pm2
find / -name pm2
# 执行pm2
/usr/local/node/bin/pm2
开通服务器的外网4873端口,就可以直接使用华为云耀云服务器L实例服务器的IP + port进行访问verdaccio服务。
如下为使用华为云耀云服务器L实例服务器的IP + port进行访问verdaccio服务:
3. docker-compose启动verdaccio服务:
上面是简单的从npm安装进行,实际上为了考虑公司的稳定性,还是建议使用docker进行部署,如下为docker-compose的部署文件。
docker-compose.yml文件:
js
version: '3'
networks:
node-network:
driver: bridge
services:
### Verdaccio Container ###########################
verdaccio:
image: verdaccio/verdaccio
container_name: "verdaccio"
networks:
- node-network
environment:
- VERDACCIO_PORT=8010
ports:
- "8010:8010"
volumes:
- "./verdaccio/storage:/verdaccio/storage"
- "./verdaccio/config:/verdaccio/conf"
- "./verdaccio/plugins:/verdaccio/plugins"
4. 初始化公共库仓库并进行发布版本:
发布verdaccio:
js
npm publish --registry http://124.70.42.136:4873/
通过npm publish发布npm包,发布后就可以看到verdaccio能够显示刚刚发布的包。
点击查看里面详细的信息,有不同的安装方式的命令。
5. 小结:
我们平时使用npm publish进行发布时,上传的仓库默认地址是npm,通过Verdaccio工具在本地新建一个仓库地址,再把本地的默认上传仓库地址切换到本地仓库地址即可。当npm install时没有找到本地的仓库,则Verdaccio默认配置中会从npm中央仓库下载。