npm控制箱(使用verdaccio搭建npm私有仓库)
verdaccio私有仓库
背景
verdaccio
业务需求,会有许多公司内部开发的私有包,这些包希望可以统一管理,方便开发和使用,此时就需要一个内部的仓库来保存这些包。使用内部仓库还有一个好处,就是速度快,自己搭建npm 服务器,本身可以自带常用package的缓存, cnpm有一些包存在路径问题,而npm 的速度有些感人,自建的服务器会缓存下载过的包,能节省时间。
仓库对比:
- maven包管理的私服工具nexus搭建私有仓库:方式功能强大,但更偏向后台使用,前端不太适合
- 阿里的cnpm搭建npm私有仓库:这个是阿里自己内部也在使用的,挺好用,不过需要安装MySQL数据库,而且配置比较麻烦
- sinopia搭建npm私有仓库:这个使用比较简单,而且不用配置数据库,但是这个github项目很久没有维护了
- verdaccio搭建npm私有仓库:这个github项目是sinopia的分支,所谓青出于蓝胜于蓝,查阅相关资料后对比,决定使用此仓库
安装比较简单,使用npm全局安装即可。
$ npm install -g verdaccio --unsafe-perm
安装完成后,默认配置文件位置在~/.config/verdaccio/config.yaml
修改配置文件:
storage: /data/verdaccio/storage #存储位置
plugins: /data/verdaccio/plugins
web:
title: Verdaccio
auth:
htpasswd:
file: /data/verdaccio/htpasswd #认证文件位置
uplinks:
npmjs:
url: https://registry.npm.taobao.org/ #让verdaccio使用 淘宝的npm镜像地址
listen: 0.0.0.0:4873 #配置监听地址及端口
使用pm2来管理verdaccio的启动和关闭。
安装pm2:
$ npm install -g pm2 --unsafe-perm
使用pm2启动verdaccio:
$ pm2 start verdaccio
查看进程:
pm2
verdaccio已经在启动了。
通过http://ip:4873访问,既可以看到本文开始的verdaccio页面。
使用verdaccio仓库发布npm包到私有仓库
发布npm包之前必须先注册账号:
$ npm adduser --registry http://xxx:4873
# 输入npm账号用户名、密码和邮箱,如下:
Username: npmtest
Password:
Email: (this IS public) npmtest@npmtest
Logged in as npmtest on http://xxx:4873/
输出Logged in as npmtest on http://xxx:4873/.,表示npm账号npmtest成功登录到http://xxx:4873/私有仓库了。
发布npm包:
$ npm publish --registry http://xxx:4873
发布成功后在浏览器刷新http://xxx:4873就可以看到我们发布的私有包。
使用npm仓库的私有包
下载我们发布到私有仓库的npm包时,只需要修改仓库地址即可,具体操作如下:
$ npm set registry http://xxx:4873
在执行这条命令以后,再使用npm install xxx命令就会优先去我们自己的私有仓库下载npm包,如果没有找到,则会从npm中央仓库下载,npm中央仓库我们再配置文件中配置的淘宝地址,所以下载速度也是很快的。
后记
verdaccio
verdaccio私有仓库在作者公司已经使用了半年多了,至今没有出现过什么问题,还是很推荐大家使用的。也欢迎大家多提意见,共同学习!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com