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

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

verdaccio私有仓库

背景

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

verdaccio

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

仓库对比:

  • maven包管理的私服工具nexus搭建私有仓库:方式功能强大,但更偏向后台使用,前端不太适合
  • 阿里的cnpm搭建npm私有仓库:这个是阿里自己内部也在使用的,挺好用,不过需要安装MySQL数据库,而且配置比较麻烦
  • sinopia搭建npm私有仓库:这个使用比较简单,而且不用配置数据库,但是这个github项目很久没有维护了
  • verdaccio搭建npm私有仓库:这个github项目是sinopia的分支,所谓青出于蓝胜于蓝,查阅相关资料后对比,决定使用此仓库
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私有仓库在作者公司已经使用了半年多了,至今没有出现过什么问题,还是很推荐大家使用的。也欢迎大家多提意见,共同学习!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页