我们平时使用 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/ 就可以看到我们发布上去的包了