Verdaccio 搭建私有 NPM

栏目: Node.js · 发布时间: 5年前

内容简介:Verdaccio 是一个 Node.js创建的轻量的私有 npm proxy registry, forked 于或者使用

Verdaccio 是一个 Node.js创建的轻量的私有 npm proxy registry, forked 于 sinopia@1.4.0

  • 与 yarn, npm 和 pnpm 100% 兼容
  • 提供 Docker 和 Kubernetes 支持,相当容易安装和使用
  • 发布的包是私有的并且访问权限可配置
  • Verdaccio 按需要缓存所有相关项,并在当地或私有网络下可以加速安装

安装

环境

  1. Node

    Node >= v6.12
    Node >= v8.x
    
  2. npm >=4.x 或者 yarn

    官方强烈推荐包管理器版本 > npm@5.x | yarn@1.x | pnpm@2.x

  3. web 应用支持浏览器 Chrome, Firefox, Edge 和 IE11以上

命令行安装

npm 全局安装

npm install -g verdaccio
复制代码

或者使用 yarn

yarn global add verdaccio
复制代码

使用

安装好后需要命令行执行

$> verdaccio 
warn --- config file  - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:4873/ - verdaccio/3.0.0
复制代码

然后打开浏览器 访问地址 http://localhost:4873/ 正常显示即成功, 4873是默认端口。 另外建议安装 nrm 方便管理 npm 源。

npm i -g nrm
复制代码

安装好后

nrm add verdaccio http://localhost:4873/ # 添加源
nrm use verdaccio # 更换源
复制代码

然后就是添加用户,登录就可以发布、安装了。

配置

在当前用户的 .config/verdaccio 下默认有两个文件: config.ymlhtpasswd 。这里介绍两个比较重要的配置项,其他的可以官网上查询。

权限配置

一般团队或者公司的私有项目,会采用不同的权限控制。

操作权限:

access
publish
proxy

组权限:

$all
$authenticated
$anonymous

了解这几项配置后就能很简单地使用 verdaccio 的权限控制了

packages:
  # scoped 包
  '@scope/*':
    access: $all
    publish: $all
    proxy: server2
    
  'supersecret-*':
    # 添加多个组
    access: secret super-secret-area ultra-secret-area
    publish: secret ultra-secret-area
    proxy: server1

  'private-*':
     # private-xxx 允许所有的用户安装、认证的用户发布
    access: $all
    publish: $authenticated
    proxy: uplink1
    
  'old-*':  # 不设置 `access`、`publish` 阻止对一组包的访问(不设置proxy阻止代理一组特定包)

  '**':
    # 允许所有用户 (包括为验证的用户) 安装和发布
    access: $all
    publish: $all
    proxy: uplink2
复制代码

账号配置

因为是私有源,我们可以设置 config.yml 中的 max_users: -1 来禁用 npm adduser 命令来创建用户。如果需要添加用户这里介绍两种方法:

  • 可以通过安装htpasswd-for-sinopia 来添加账号

    $ npm install htpasswd-for-sinopia -g
    
    $ sinopia-adduser # 在 htpasswd 目录下执行
    复制代码

    然后就是根据提示填写账号密码就行。

  • verdaccio 的认证是基于verdaccio-htpasswd, 可以通过官方提供的 工具 来生成 www.htaccesstools.com/htpasswd-ge… ,将生成的段字符串添加到 htpasswd 中即可。

部署

可以使用forever、pm2或其他的守护进程进行管理。

$ npm i -g pm2 # 安装

$ pm2 start `which sinopia` #启动
复制代码

nginx 配置:

server {
  listen 80 default_server;
  location / {
    proxy_pass              http://127.0.0.1:4873/;
    proxy_set_header        Host $host;
  }
}
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法竞赛入门经典

算法竞赛入门经典

刘汝佳 / 清华大学出版社 / 2009-11 / 24.00元

《算法竞赛入门经典》是一本算法竞赛的入门教材,把C/C++语言、算法和解题有机地结合在了一起,淡化理论,注重学习方法和实践技巧。全书内容分为11章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、基础题目选解、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法,覆盖了算法竞赛入门所需的主要知识点,并附有大量习题。书中的代码规范、简洁、易懂,不仅能帮助......一起来看看 《算法竞赛入门经典》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具