npm控制箱(使用verdaccio搭建npm私有仓库)(1)

verdaccio私有仓库

背景

npm控制箱(使用verdaccio搭建npm私有仓库)(2)

verdaccio

业务需求,会有许多公司内部开发的私有包,这些包希望可以统一管理,方便开发和使用,此时就需要一个内部的仓库来保存这些包。使用内部仓库还有一个好处,就是速度快,自己搭建npm 服务器,本身可以自带常用package的缓存, cnpm有一些包存在路径问题,而npm 的速度有些感人,自建的服务器会缓存下载过的包,能节省时间。

仓库对比:

verdaccio 安装

安装比较简单,使用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 #配置监听地址及端口

verdaccio 启动

使用pm2来管理verdaccio的启动和关闭。

安装pm2:

$ npm install -g pm2 --unsafe-perm

使用pm2启动verdaccio:

$ pm2 start verdaccio

查看进程:

npm控制箱(使用verdaccio搭建npm私有仓库)(3)

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中央仓库我们再配置文件中配置的淘宝地址,所以下载速度也是很快的。

后记

npm控制箱(使用verdaccio搭建npm私有仓库)(4)

verdaccio

verdaccio私有仓库在作者公司已经使用了半年多了,至今没有出现过什么问题,还是很推荐大家使用的。也欢迎大家多提意见,共同学习!

,