使用verdaccio搭建npm私有仓库

https://verdaccio.org/docs/en/configuration#authentification

verdaccio私有仓库

背景


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

查看进程:

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

posted @ 2021-02-10 13:36  我是一条最咸的咸鱼  阅读(1073)  评论(0编辑  收藏  举报
返回顶部