为什么需要私有 npm 仓库?
- 团队内部开发的 npm 包只希望内部共享(虽然公共 npm 仓库也支持私有但要收费)
- 避免公共 npm 仓库带来的安全问题,防止恶意代码攻击
- 保证网络稳定,提升下载速度
- 自行管理依赖版本,避免破坏性变更
Verdaccio
目前最流行的私有仓库搭建工具,相比其他工具,部署简单,同时支持缓存公共 npm 包
基本用法
全局安装
npm install -g verdaccio运行服务
verdaccio默认服务跑在 http://localhost:4873
从私有仓库中下载包
npm install --registry http://localhost:4873默认仓库
设置发布和下载的默认仓库
npm set registry http://localhost:4873/发布包
npm publish --registry http://localhost:4873/删除包
npm unpublish pkg --registry http://localhost:4873/删除指定版本
npm unpublish pkg@1.0.0 --registry http://localhost:4873/缓存公共 npm 包
当安装一个私有仓库中没有的 npm 包时,会自动从公共 npm 仓库中下载,下载后缓存起来,下次下载时直接从缓存读取
docker 部署
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio