企业级包管理器之搭建 npm 私有服务器 (6)

在企业级应用开发中,常常需要处理私有包的发布和管理。搭建 npm 私有服务器是一个理想的解决方案,它不仅能保证代码的私密性,还能提供更快的下载速度和更精细的权限设置。

一、搭建 npm 私有服务器的优势

  1. 保证代码私密性:在企业开发中,很多时候我们要发布的包是私有的。通过搭建私有服务器,我们可以更好地控制包的访问权限,确保代码的安全性。
  2. 下载速度更快:由于私有服务器通常在局域网内部,因此下载速度更快,能够提高开发效率。
  3. 权限设置利于维护:可以将发布的包做一些权限上的设置,例如指定哪些用户可以访问、发布和安装私有 npm 包,利于维护和管理。

二、Verdaccio------搭建 npm 私有仓库的利器

  1. Verdaccio 的特点

    • 轻量级:Verdaccio 采用 Node.js 编写,安装和运行起来非常快速。它不依赖于任何外部数据库,而是将数据存储在本地文件系统中。
    • 简单的配置:Verdaccio 的配置非常简单,只需一个 YAML 文件即可。您可以轻松地指定用户权限、上游代理、缓存设置等。
    • 缓存和代理:Verdaccio 可以作为上游 npm 注册表的代理,从而帮助减轻网络延迟和提高包的安装速度。同时,它还会缓存已经下载的包,以便在没有互联网连接的情况下也能正常工作。
    • 访问控制:Verdaccio 支持基于用户和包的访问控制,您可以轻松地管理谁可以访问、发布和安装私有 npm 包。
    • 插件支持:Verdaccio 支持插件,您可以扩展其功能,如添加身份验证提供程序、审计日志等。
  2. 安装和启动 Verdaccio

    • 首先安装 Verdaccio:
    bash 复制代码
    npm i -g verdaccio
    • 查看 verdaccio 的基本信息:
    bash 复制代码
    verdaccio -h
    • 启动服务器:
    bash 复制代码
    verdaccio
  3. Verdaccio 相关配置

    • 配置文件格式:Verdaccio 配置文件采用的是 YAML 格式,这是配置文件的一种常用格式,基本的语法结构由键值对组成,使用缩进来表示层级关系,键值对使用冒号分隔,键和值之间使用一个空格分隔。例如:
    yaml 复制代码
    person:
      name: John
      age: 30
      address:
        street: Main St.
        city: New York
    • 一些重要配置项

      • storage:存储包的路径。
      • web:网站相关的配置,如 title 等。
      • uplinks:上游代理。当我们搭建了私服,但通过私服下载某些包时,私服可能没有。这个时候就会从上游代理中去下载这些包,然后缓存到私服里面。例如:
      yaml 复制代码
      uplinks:
        npmjs:
          url: https://registry.npmjs.org/
      • packages:这个配置项用于对权限的控制。例如:
      bash 复制代码
      packages:
        '@your-scope/*':
          access: $authenticated
          publish: $authenticated
          proxy: npmjs
        '**':
          access: $all
          publish: $authenticated
          proxy: npmjs

      @your-scope/ 这个作用域包,只允许认证过的用户访问和发布,对于其他的包,所有用户都能够访问,但是只有认证过的用户才能发布,从而能够对权限做一个很好的控制。

      • auth:设置用户身份的验证方法,默认采用的是 htpasswd 的方式。

三、镜像管理工具 nrm

  1. nrm 的作用:nrm 是一个专门用于管理 npm 镜像的工具,全称是 npm registry manager。

  2. 安装 nrm

    • 首先安装 nrm:
    bash 复制代码
    npm i -g nrm
    • 安装时可能会遇到错误,因为 nrm 依赖于一个名为 open 的包,因此在安装 nrm 的时候,同时安装 open 即可:
    bash 复制代码
    npm install -g nrm open@8.4.2
  3. nrm 常见指令

    • nrm ls:列出所有可用的镜像列表。
    • nrm use < registry >:切换镜像。
    • nrm add < registry > < url >:添加镜像。
    • nrm del < registry >:删除镜像。
相关推荐
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60617 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
七夜zippoe8 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥8 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
崔庆才丨静觅8 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment8 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端