NPM私服搭建(verdaccio)

这篇具有很好参考价值的文章主要介绍了NPM私服搭建(verdaccio)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 官网地址:https://verdaccio.org/

概述

Verdaccio 是一个流行的 Node.js 包管理器的代理工具,它允许您在本地或私有网络上轻松地创建和管理 npm 包仓库。通过 Verdaccio,开发团队可以建立自己的 npm 包仓库,以更好地控制和管理其依赖项,同时还可以提供更快速的包下载速度,减轻 npm中心服务器的负载。

Verdaccio 的工作原理

Verdaccio 的核心原理是代理 npm 注册表。它可以被视为一个本地 npm 注册表的缓存,并提供了一个用户友好的界面,使您能够在其中发布、安装和管理包。其工作原理如下:

  1. 代理 npm 注册表:Verdaccio 允许您配置它以代理 npm 的官方注册表或其他任何 npm 注册表。当您尝试安装、发布或访问包时,Verdaccio 将首先查看本地缓存,如果找到所需的包,它将立即提供。如果没有找到,它将向上游注册表发送请求,获取包并将其缓存到本地以供将来使用。
  2. 本地包存储:Verdaccio 提供了本地包存储的功能,这意味着您可以在本地创建和发布自己的 npm 包,无需将其发布到公共 npm 注册表。这对于内部项目、私有库或需要保护知识产权的情况非常有用。
  3. 安全性:Verdaccio 支持访问控制、身份验证和权限管理,您可以通过配置来限制谁可以发布、访问或管理仓库中的包。这有助于保护您的包和代码免受未经授权的访问和修改。
  4. 高度可定制性:Verdaccio 可以根据您的需求进行高度定制。您可以配置其插件、主题、中间件和许多其他选项,以满足特定项目或组织的要求。

Verdaccio 的用途

Verdaccio 在许多不同情境下都非常有用,以下是一些主要用途:

  1. 本地开发:在开发过程中,为了更快地安装和访问依赖项,开发人员可以在本地搭建 Verdaccio 服务器。这样,他们可以使用本地缓存,而不必每次都从公共 npm 注册表下载依赖项,从而提高开发效率。
  2. 内部项目:对于组织内部的项目,特别是那些需要保护知识产权或不希望将代码公开的项目,Verdaccio 提供了一个方便的方式来创建和管理本地 npm 仓库。这确保了包不会意外泄漏到公共 npm 注册表。
  3. 离线环境:在没有互联网连接或带宽有限的环境中,Verdaccio 允许您创建一个本地的 npm 缓存,以确保团队成员可以继续开发,而不受网络限制的干扰。
  4. 安全性:Verdaccio 的权限控制和身份验证功能使您能够更好地管理谁可以访问和发布包,从而提高了包的安全性。这对于保护内部项目或提供有限访问权限的场景非常重要。

搭建部署

1.创建YAML文件

mkdir verdaccio&&cd verdaccio
vim docker-compose-verdaccio.yml
version: '3.4'
services:
  verdaccio:
    image: verdaccio/verdaccio
    container_name: "verdaccio"
    environment:
      # VERDACCIO 服务端口
      - VERDACCIO_PORT=3005
      # 当前登录 linux 服务器的用户名
      - VERDACCIO_USER_NAME="root"
    ports:
      # 宿主和容器的端口
      - "3005:3005"
    volumes:
      - "./storage:/verdaccio/storage"
      - "./config:/verdaccio/conf"
      - "./plugins:/verdaccio/plugins"
  1. 创建配置文件
vim config.yaml
storage: /verdaccio/storage
web:
  # 网站Title
  title: 私有NPM服务
  # 禁用Gravatar头像
  # gravatar: false
  # 排序方式 asc|desc
  # sort_packages: asc
  # 是否启用暗黑模式
  # darkMode: true
  # logo地址
  # logo: http://somedomain/somelogo.png
  # favicon地址
  # favicon: http://somedomain/favicon.ico | /path/favicon.ico

# i18n翻译配置
# i18n:
# 可用列表见:https://github.com/verdaccio/ui/tree/master/i18n/translations
#   web: en-US
auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd

# 上游npm库,这里可用设置为淘宝
uplinks:
  npmjs:
   url: https://registry.npmjs.org/
  server2:
    url: https://registry.npmmirror.com/
  server3:
    url: https://mirrors.cloud.tencent.com/npm/

packages:
  '@*/*':
    # 允许所有人访问
    access: $all
    # 注册用户可访问
    publish: $authenticated
    # 注册用户可访问
    unpublish: $authenticated
    proxy: npmjs server2 server3
  '**':
    # 这里如果不设置在使用 npm i xxx、 npm publish 时将会提示包不存在,为了方便这里直接设置上如下两行
    # 默认情况下所有用户 (包括未授权用户) 都可以查看和发布任意包
    # 你可以指定 用户名/分组名 (取决于你使用什么授权插件,默认的授权插件是内置的 htpasswd)
    # 访问权限有三个关键词: "$all", "$anonymous", "$authenticated"
    # $all 表示不限制,任何人可访问;
    # $anonymous 表示未注册用户可访问;
    # $authenticated 表示只有注册用户可访问
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    # 如果私有包服务不可用在本地,则会代理请求到'npmjs'
    proxy: npmjs server2 server3

# 您可以指定传入连接的HTTP /1.1服务器保持活动超时(以秒为单位)。
# 值为0会使http服务器的行为类似于8.0.0之前的Node.js版本,后者没有保持活动超时。
# 解决方法:通过给定的配置可以解决以下问题
server:
  keepAliveTimeout: 60

# 中间件
middlewares:
  audit:
    enabled: true

# 日志设置
logs:
  - {type: stdout, format: pretty, level: http}

# 开放远程访问,允许所有IP
listen:
  # 这个端口务必对应上
  - 0.0.0.0:3005

3.创建认证文件与config.yaml同级目录

htpasswd -c  htpasswd admin

4.启动服务

docker-compose -f docker-compose-verdaccio.yml up -d
#需给目录设置权限,否则使用时会报错没有权限存储
chmod 777 -R storage config plugins

5.访问服务

http://IP:3005

NPM私服搭建(verdaccio),npm,前端,node.js
6.使用私服文章来源地址https://www.toymoban.com/news/detail-833274.html

#设置私服仓库
npm set registry http://localhost:4873/         #设置默认仓库地址
npm install --registry http://localhost:4873    #设置本次安装的仓库地址

到了这里,关于NPM私服搭建(verdaccio)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Linux 中使用 verdaccio 搭建私有npm 服务器

    Linux 中使用 verdaccio 搭建私有npm 服务器

    Linux中安装Node 安装完成 输入verdaccio,出现下面信息代表安装成功,同时输入verdaccio后verdaccio已经处于运行状态,当然这种启动时暂时的,我们需要通过pm2让verdaccio服务常驻 就可以通过http://xxx(ip地址)去访问了 若无法访问,查看下端口是否已打开 下面列一下几种使用场景

    2024年02月14日
    浏览(41)
  • 前端笔记10——Win7下node.js和npm版本兼容性问题解决。

    前端笔记10——Win7下node.js和npm版本兼容性问题解决。

    新版本node.js不支持WIN7。 Win7的电脑只能支持到Node v13.14.0。 可能之前装了新版本的node,删了重装后,导致运行npm命令老是提醒信息,说是不支持node版本。 npm does not support Node.js v13.14.0 可是显示版本正常 解决方法: 卸载node之后,在把npm和npm cache两个文件夹删掉。 删干净后再

    2024年02月15日
    浏览(13)
  • 快速解决 npm 安装 node-sass 速度慢/错误的问题(nexus私服问题见上一篇博客)

    这通常是因为 node-sass 包中包含有本地二进制文件( _binding.node ),而在某些情况下,下载过程可能会失败。 以下是一些可能的解决方法: 1. 使用淘宝镜像 你可以尝试使用淘宝的 cnpm 命令行工具,该工具使用淘宝的镜像源,可以解决部分下载问题。首先,安装 cnpm : 然后使

    2024年02月03日
    浏览(13)
  • Node js 升级更新后 npm用不了 npm npm does not support Node.js 或者node版本太低

    Node js 升级更新后 npm用不了 npm npm does not support Node.js 或者node版本太低

    一开始是出现node版本太低,然后升级了node发现升级后npm不支持,发现是node的版本需要与npm对应,而npm没法跨级升,下面教大家解决办法: 一、检查你的nodejs和npm的版本能否对应得上 (注:如果npm版本查询显示空也可以用下面的方法) 这里附上 npm和node版本对照官网 : 以往的

    2024年02月02日
    浏览(16)
  • 使用 Verdaccio 私有化 npm 源指南

    使用 Verdaccio 私有化 npm 源指南

    使用 Verdaccio 私有化 npm 源指南 介绍 什么是 Verdaccio 为什么选择 Verdaccio 部署 Verdaccio Nodejs 部署 全局 局部 Docker 部署 云服务商一键部署 注册用户 发布私有 npm 包 管理 npm 包 项目使用私有源 全量切换 部分切换 结尾 源代码链接 在日常的工作开发中,我们常常会遇到这样的场景

    2024年04月15日
    浏览(22)
  • Node.js 和 npm 命令

    Node.js 命令 : 运行 JavaScript 文件 : 如果你有一个名为 app.js 的 JavaScript 文件,你可以使用以下命令来运行它: REPL(Read-Eval-Print Loop)模式 : 你可以直接启动 Node.js 的交互式解释器来执行 JavaScript 代码片段,而无需保存到一个文件中: 然后你可以在 REPL 中输入 JavaScript 代码

    2024年04月15日
    浏览(17)
  • npm 创建 node.js 项目

    package.json重要说明 package.json是创建任何node.js项目必须要有的一个文件。 因为在package.json文件中,有详细的项目描述, 包括: (1)项目名称:name (2)版本:version (3)依赖文件:dependencies 等等.. 1. 创建node.js项目步骤 (1) 创建package.json文件 (2) 运行npm install 创建node_modules这个文件夹

    2024年02月11日
    浏览(16)
  • Node.js与npm版本比对

    Node.js与npm版本比对

    我们在项目开发过程中,经常会遇到公司一些老的前端工程项目,而我们当前的node及npm版本都是相对比较新的了。 在运行以前工程时,会遇到相关环境不匹配的问题,那么 就需要对现有的node及npm版本进行降级,所以就需要找到对应的node与npm版本比对表格。 下面是从官网找

    2024年02月08日
    浏览(11)
  • Win安装Node.js Npm

    Win安装Node.js Npm

    1、在使用之前,先类掌握3个东西,明白它们是用来干什么的: npm: nodejs 下的包管理器。 webpack: 它主要用途是通过CommonJS 的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。 vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是

    2024年02月08日
    浏览(51)
  • npm超详细安装(包括配置环境变量)!!!npm安装教程(node.js安装教程)

    npm超详细安装(包括配置环境变量)!!!npm安装教程(node.js安装教程)

    安装node.js:(建议选择相对低一点的版本,相对稳定) ​ 下载完成直接点击next即可(安装过程中会直接添加path的系统变量,变量值是自己的安装路径,可自行选择,比如:D:software) ​ 安装完成:win+R打开电脑控制台,输cmd进入,输入( node -v ; npm -v )测试是否安装成功 ​ 安装

    2024年01月18日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包