verdaccio是什么?
官网: https://www.verdaccio.org/
A lightweight private npm proxy registry
一个轻量级的npm中心代理仓库!采用node实现的
简单点说,就是npm私有部署仓库,类似npm官方付费的私有仓.
搞的动机
为什么会搞这个?
是想把我们公司的npm私有仓从nexus迁移出来.
我们目前和后端共用nexus,因为nexus也能管理maven这些!
npm私有仓库独立出来,后续好推向整个公司!!
我们这里采用docker自己部署(用的是v4.6.x),方便后续滚动更新.
配置文件及模块缓存目录是从外部映射进去,维护比较弹性
外网访问是通过nginx代理,内网集群是通过安全组策略授权.
注意: 非采用官方docker镜像.
效果图
总体来说对前端人员比较友好,很多信息很直观.
包括依赖,发布仓库,代码反馈,node版本等等
注意点及姿势
verdaccio配置主要集中在一个配置文件, config.yaml
基础配置(默认语言,logo替换,排序)
web:
# WebUI is enabled as default, if you want disable it, just uncomment this line
enable: true
title: #网站首页进入的正文标题
logo: #这里可以给定一个远程连接的图片,注释掉就采用默认的
# comment out to disable gravatar support
gravatar: true
# by default packages are ordercer ascendant (asc|desc)
# sort_packages: asc # 包的排序
# darkMode: true # 黑暗模式
# scope: "@scope"
# translate your registry, api i18n not available yet
i18n:
# list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
web: zh-CN # 默认是en-US,我们改为默认中文,这个东东支持多语言
账号机制及授权
我们是公司内部使用,所以走ldap是必然的.
verdaccio支持插件机制,这里我们用了这个插件:
verdaccio-ldap : 这个插件基本满足账号的打通!
授权机制也是通过ldap插件给定某个组,
对应的资源发包和撤回权限采用授权组即可.
当然也可以特定到某个用户!如图
上游链的配置
因为我们目前有两个集群,
不可能搭了这个东东,就放弃之前的.
那之前的私有仓资源如何可以通过这个私有仓访问,
外网社区的npm资源如何接入呢?主要配置uplinks
来实现.
uplinks:
npmjs:
url: https://registry.npmjs.org/
timeout: 10s
yarn:
url: https://registry.yarnpkg.com/
timeout: 10s
taobao:
url: https://registry.npm.taobao.org/
timeout