我们平时使用 npm publish 进行发布时,上传的仓库默认地址是 npm,公司内部包的管理并不希望发布到公网去,所以需要发布到自己的私有仓库, 之前都是用的 cnpmjs, 由于没有维护了,太老了,所以改用 Verdaccio。 通过 Verdaccio 工具在本地新建一个仓库地址,再把本地的默认上传仓库地址切换到本地仓库地址即可。当 npm install 时没有找到本地的仓库,则 Verdaccio 默认配置中会从 npm 中央仓库下载。
部署
建议使用 docker 容器化部署,此处给出常用 docker-compose 配置文件
1 | version: '3.1' |
- storage: 包存储路径
- config: 配置文件路径
- plugins: 插件路径
配置文件调整
config/config.yaml
1 | # https://verdaccio.org/docs/configuration#uplinks |
贴出部分配置文件,需要注意的地方有两个
- 上游源, 我这里添加了一个淘宝源,并指定 npm 代理到淘宝源
- 发布配置 allow_offline: 允许离线发布, 否则发布会向上游同步
使用私有源
1 | npm install -g nrm --registry http://ip:4873 # 安装nrm |
发布
1 | npm adduser # 添加用户 |
浏览器访问: http://ip:4873/ 就可以看到我们发布上去的包了