Skip to content

前端搭建Nexus私有化仓库—附发布一个简单组件案例

背景

  1. 公司网络环境限制,访问公网依赖源可能较慢;
  2. 需要搭建共享组件库,提高团队开发效率;
  3. 高可用和持续集成支持,可以与公司的 CI/CD 工具集成;
  4. ...

总之帮助多团队多项目的环境中管理和维护大量的内部库和外部依赖。

搭建过程

Windows系统搭建Nexus3版本为例。

步骤1:准备环境

Nexus 需要 Java 8Java 11 运行环境。

  • 安装 Java 8Java 11(如果未安装)。
  • 配置 JAVA_HOME 环境变量,确保指向正确的 Java 安装路径。
  • 确认 Java 正常安装,通过命令行执行以下命令:
bash
java -version

确保返回的是正确的 Java 版本号。

步骤2:安装 Nexus Repository Manager

Nexus Repository Manager 主要有两个版本可供选择,分别是 Nexus Repository OSS(开源版)和 Nexus Repository Pro(专业版)。您可以根据自己的需求选择其中一个版本进行安装。

  1. 安装地址:https://www.sonatype.com/products/sonatype-nexus-repository
  2. 解压文件
  3. bin目录下运行Nexus Repository Manager
    bash
    cd nexus-x.x.x/bin
    nexus.exe /run
  4. Nexus 默认监听 8081 端口,启动后浏览器访问http://localhost:8081 第一次访问时,会进入管理员登录页面。默认管理员账户和初始密码存储在解压目录的 admin.password 文件中。文件路径通常为: nexus-3.x.x\sonatype-work\nexus3\admin.password,在登录界面重新设定密码之后,这个文件会消失,然后使用新密码登录即可。

步骤3:配置 Nexus Repository Manager

配置存储空间Store

如果仅作为测试,可以暂时使用默认store

创建仓库

仓库分为三种:

  • hosted(私有仓库):用于发布个人开发的npm组件;
  • proxy(代理仓库):可以代理远程仓库,Nexus 会从远程仓库下载构件,并缓存到本地,这样当后续有用户请求相同的构件时,可以直接从缓存中获取,提升下载速度并减少对外部网络的依赖;
  • group(组合仓库):对外公开的仓库,组合了hostedproxy
  1. 创建hosted

  2. 创建proxy

填入两个必填项,这里以华为云镜像地址为例。

  1. 创建group

members一栏是起作用的仓库,越靠上优先级越高。

创建用户,分配权限

如果需要单独创建新的角色,一定要正确分配对应的权限,否则会遇到401鉴权失败提示。 设置身份验证,确保用户只有在拥有有效令牌的情况下才能执行特定操作(如发布包、下载包等)。

发布私服npm

  1. 切换到私有库地址hosted
bash
npm config set registry http://localhost:8081/repository/zhp-hosted/
  1. 登录
bash
npm login

输入用户名,密码,邮箱。 3. 发布

bash
npm publish

发布后可以在nexus仓库中看到:

使用npm包

  1. 切换到私有库地址hosted
bash
npm config set registry http://localhost:8081/repository/zhp-group/
  1. 登录账号 步骤同上,如果遇到401报错,可能是因为上一个没退出登录 执行logout就好了。
  2. 执行安装
bash
npm install

原先zhp-proxy没有任何依赖,此时填充了从zhp-proxy对应镜像源下载的依赖。