安装与启动 1. 全局安装verdaccio 1 2 3 // 加上--unsafe-perm选项是为了防止gyp ERR! permission denied权限问题报错 npm install --global verdaccio --unsafe-perm // 对于 verdaccio@4.0.0-alpha.x 或 verdaccio@4.x版本, Node 8.x (LTS "Carbon" ) 是最低支持版本, 建议安装nvm进行node版的切换。
2. 全局安装pm2 1 npm install --global pm2
如果安装失败,可以尝试 npm cache clean -f 后重新安装。
3. 启动verdaccio 1 2 pm2 start verdaccio pm2 log verdaccio // 或者使用 pm2 log 对应的id
1 2 3 4 5 // 表示启动成功, 打开 http://localhost:4873 可以看到页面。 0|verdacci | warn --- config file - /Users/jinbiao/.config/verdaccio/config.yaml 0|verdacci | warn --- Plugin successfully loaded: verdaccio-htpasswd 0|verdacci | warn --- Plugin successfully loaded: verdaccio-audit 0|verdacci | warn --- http address - http://localhost:4873/ - verdaccio/4.1.0
4. 配置config.yaml 1 2 3 4 logs: - { type : stdout, format: pretty, level: http } listen: 0.0.0.0:4873 // 在文件最后,添加listen这一行 表示可以通过外网访问
1 pm2 restart verdaccio // 或者使用 pm2 restart 对应的id
verdaccio配置 1.默认配置如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 storage: ./storage plugins: ./plugins web: title: Verdaccio auth: htpasswd: file: ./htpasswd uplinks: npmjs: url: https://registry.npmjs.org/ packages: '@*/*' : access: $all publish: $authenticated proxy: npmjs '**' : access: $all publish: $authenticated proxy: npmjs middlewares: audit: enabled: true listen: 0.0.0.0:4873 logs: - {type : stdout, format: pretty, level: http}
2.缓存,上游,及更新原理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 uplinks: someRegisry: url: http://172.18.128.218:4873/ packages: '@*/*' : access: $all publish: $authenticated proxy: someRegisry '**' : access: $all publish: $authenticated proxy: npmjs
上图表示verdaccio先去上游地址请求到了包,然后把包返回给客户端,并且缓存了.tgz压缩包。
存到了 ~/.config/verdaccio/storage 之中
上图表示第二次还是请求这个模块的时候,verdaccio会去上游查找,并且和本地缓存对比,发现没有区别,所有直接从缓存返回。
上图表示,上游模块发生了更新,所以继续到上游地址请求包,然后把包返回给客户端,并且缓存了.tgz压缩包。
verdaccio官方文档