在工作中,公司有很多内部的包并不希望发布到npm官网仓库,因为可能涉及到一些私有代码不能暴露。对于前端来讲,这时就可以选择在公司内网搭建npm私有仓库。当前比较主流的几种解决方案:verdaccio、nexus、cnpm。大家可以按照自己的需求选择。本文中采用的是verdaccio私服搭建。
Verdaccio是一个通过Node.js创建的企业级npm私有仓库程序,可以安装运行在Windows系统和Linux系统,这里将其安装运行在Linux系统中。
1.准备工作
阿里云服务器:Centos 7
node:15.10.0
npm:10.2.4
这只是我的配置,不一定需要服务器,小伙伴可以安装自己电脑上或者虚拟机上,Verdaccio可以安装运行在Windows系统和Linux系统
2.安装verdaccio
安装verdaccio(加上–unsafe-perm的原因是防止报grywarn权限的错)
npm install -g verdaccio --unsafe-perm
修改配置文件(config.yaml)
vi /root/.config/verdaccio/config.yaml
在配置文件末尾最后添加监听端口
listen: 0.0.0.0:4873 // verdaccio 默认端口
还有一种简单的修改配置的方法:
找到verdaccio的安装位置,打开config.yaml 直接修改,如下图
3. 启动verdaccio
3.1直接启动
verdaccio
启动后用ip+端口号就可以打开npm私服的页面
3.2利用pm2一直守护verdaccio进程
直接使用 verdaccio虽然可以正常启动,但是不能一直保持进程开启,所以我们可以使用pm2来对verdaccio进程进行托管启动
安装pm
npm install -g pm2 --unsafe-perm
pm2启动verdaccio
pm2 start verdaccio
查看pm2 守护下的进程
pm2 ls
pm2常用的几个命令
停止 verdaccio
pm2 stop (对应的id)
pm2 stop 3
启动 verdaccio
pm2 start (对应的id)
pm2 start 3
# 重启 verdaccio
$ pm2 restart 3
# 删除 verdaccio
$ pm2 delete verdaccio
# 查看 verdaccio 日志
$ pm2 logs verdaccio
3.3 添加用户
npm adduser --registry http://192.168.XX.XX:4873 //后面是我们的私服地址
会让你输入用户名、密码、邮箱即可
然后可以在页面中登录
4.客户端使用
4.1 设置下载源
在发布和下载npm包之前需要把我们的npm下载源却换成本地的
查看下载源
npm config get
切换下载源
npm set registry 192.168.xxx.xx:4873
4.2发布npm包
在切换npm源成功的情况下进行登录和发布,登录使用刚才添加的账号密码,发布成功以后在刚才打开的页面登录账号就能看到发布的插件
4.3推荐nrm管理npm源
nrm是 npm registry 管理工具, 能够查看(nrm ls)和切换(nrm use xx)当前使用的registry
安装nrm
npm install -g nrm
添加自己服务器到地址到nrm
nrm add 自己起的名字 http://192.168.xxx.xx:4873
查看当前有哪些下载源:
nrm ls
切换想要使用的下载源
nrm use 自己起的名字