前言
随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要。但是对于公司的业务代码是不能对外开放的,因此我们有必要搭建一个类似于 http://npmjs.org 的私有平台来管理公司业务相关的组件及代码。
Verdaccio 是一个简单的、零配置本地私有 npm 软件包代理注册表。Verdaccio 开箱即用,拥有自己的小型数据库,能够代理其它注册表(例如 npmjs.org),缓存下载的模块。此外 Verdaccio 还易于扩展存储功能,它支持各种社区制作的插件,以连接到亚马逊的 s3、谷歌云存储等服务或创建自己的插件。
安装
需要事先安装好 node 环境
npm install -g verdaccio
# 如果在安装过程中报 grywarn的权限错的话,那么需要加上 --unsafe-perm
# 推荐使用unsafe-perm(如果未使用unsafe-perm后面会有安全认证问题,我就是因为没加这参数采坑的^_^)
npm install -g verdaccio --unsafe-perm
启动并验证
# 安装后 直接启用verdaccio, 默认监听4873 端口
verdaccio
# 当前npm 服务指向 本地
npm set registry http://localhost:4873
# 注册用户
npm adduser –registry http://localhost:4873
# 发包
npm publish
后台运行
通过 pm2 来使我们的进程在后台运行
# 安装pm2
npm install -g pm2
# 启动 verdaccio
pm2 start verdaccio
# 查看状态
pm2 show verdaccio
# 停止 verdaccio
# pm2 stop verdaccio
# 重新加载 verdaccio
# pm2 reload verdaccio
配置
默认配置文件路径:$HOME/.config/verdaccio/config.yaml
配置代理
优先到淘宝源查找,如果找不到再到公共仓库查找
uplinks:
npmjs:
url: https://registry.npm.taobao.org/
agent_options:
keepAlive: true
maxSockets: 40
maxFreeSockets: 10
npmjs2:
url: https://registry.npmjs.org/
agent_options:
keepAlive: true
maxSockets: 40
maxFreeSockets: 10
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs npmjs2
设置包的上传和下载需要认证
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs npmjs2
设置不让用户注册
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
max_users: -1
发表评论 取消回复