搭建团队的私有仓库,保证团队组件的安全维护和私密性,是进阶前端开发主管路上,必不可少的一项技能。
一、原理
我们平时使用npm publish进行发布时,上传的仓库默认地址是npm,通过Verdaccio工具在本地新建一个仓库地址,再把本地的默认上传仓库地址切换到本地仓库地址即可。当npm install时没有找到本地的仓库,则Verdaccio默认配置中会从npm中央仓库下载。
二、常用的仓库地址
- npm : https://registry.npmjs.org/
- cnpm : http://r.cnpmjs.org/
- taobao: https://registry.npm.taobao.org/
三、优势
- 私密性高,仅团队共享。
- 安全性高,能够有效的防治恶意代码攻击。
- 使用局域网,传输速度快。
四、准备环境
兵马未动,粮草先行,既然是搭建私有仓库应用,基础环境得备好。
- node
- git
- verdaccio
- nrm(快速切换仓库源)
- pm2(守护进程)
五、npm常见操作
- 查看当前用户信息
npm who am I
- 查看源地址
npm config list
- 切换源地址
npm set <registry> <url>
- 删除源地址
npm config rm <registry>
- 登录
npm login
- 发布
npm publish
六、nrm常见操作
使用这个就可以快速地在 npm 源间切换,简化npm命令操作。
- 安装
npm install -g nrm
- 查看源地址
nrm ls
- 添加新的源地址
nrm add <registry> <url>
- 切换源地址
nrm use <registry>
- 删除源地址
nrm del <registry>
七、使用verdaccio搭建私有npm服务
- 安装
npm install -g verdaccio
- 运行。启动时间会很久,断开cmd会关掉服务,可以使用pm2守护进程即可。
// 访问http://localhost:4837
verdaccio
- 配置config.yaml,使局域网下能共享访问,否则只能本机访问。
// 最后面添加以下配置
listen: 0.0.0.0:4873
- 重启,必须重启电脑配置才能生效。
- 重新运行
// 访问http://ip:port/
// 不要访问本地localhost下的
verdaccio
- 使用nrm新建本地仓库
nrm add <registry> http://localhost:4873
- 使用nrm切换到本地仓库
nrm use <registry>
- 使用nrm查看是否新增成功
nrm ls
- 注册verdaccio账号,一定要先保证切换到本地的源仓库的前提下,因为你注册的账号是保存在对应仓库源上的。
npm adduser
// 输入账号和密码
- 上传仓库
// 登录
npm login
// 发布
npm publish
- 访问http://ip:port 进行登录
八、效果