前言

随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要。但是对于公司的业务代码是不能对外开放的,因此我们有必要搭建一个类似于 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

点赞(1) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部