Nexus搭建npm私服仓库

我爱海鲸 2025-08-06 16:42:56 暂无标签

简介nexus-3.82.0-08、jdk-17.0.13

搭建jdk17的环境:

vim /etc/profile

文件最后:
export JAVA_HOME=/usr/local/java/jdk-17.0.13
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


重新加载配置文件,输入:source /etc/profile

 

安装下载nexus:

https://www.sonatype.com/thanks/repo-community-edition?submissionGuid=e1cabd1d-65af-4a0a-a43c-0ac080e6fe7f

nexus-3.82.0-08下载:

https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.82.0-08-linux-x86_64.tar.gz

 

1、将下载后的tar文件放到:/opt/nexus(没有就创建)

tar -xzvf nexus-3.82.0-08-linux-x86_64.tar.gz  解压

vi /etc/systemd/system/nexus.service   创建启动文件

[Unit]
Description=Nexus Repository Manager
After=network.target

[Service]
Type=forking
User=root
ExecStart=/opt/nexus/nexus-3.82.0-08/bin/nexus start
ExecStop=/opt/nexus/nexus-3.82.0-08/bin/nexus stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload  加载文件
sudo systemctl enable nexus      开机自起
sudo systemctl start nexus          运行nexus

 

systemctl stop firewalld.service 停止防火墙

systemctl status firewalld.service 查看防火墙状态

firewall-cmd --permanent --zone=public --add-port=8081/tcp 开启8081端口

sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent  # 永久添加8081端口
sudo firewall-cmd --reload  # 重载配置

firewall-cmd --reload重启防火墙

 

访问:http://192.168.176.128:8081/#browse/browse   【修改你自己的ip】

cat /opt/nexus/sonatype-work/nexus3/admin.password   【查看你的admin账号的密码,这个密码文件要首先进行访问后才会出现】

 

使用admin登录后  可以修改密码

先关闭Configure Anonymous Access 访问,(就是允许的话,拉去包就不需要账号密码)

2、创建 npm 仓库

在 Nexus 管理界面中创建三种类型的 npm 仓库:

(1) 创建 hosted 仓库(存储私有包)

  1. 进入  Settings → Repository → Repositories → Create repository

  2. 选择 npm (hosted)

  3. 配置参数:

    • Namenpm-private(自定义名称)

    • Version PolicyMixed(允许稳定版和测试版)

    • Deployment PolicyAllow redeploy(允许覆盖发布)

    • HTTP Port8082(可选,默认 8081)

(2) 创建 proxy 仓库(代理官方 npm 仓库)

  1. 同上路径,选择 npm (proxy)

  2. 配置参数:

    • Namenpm-proxy

    • Remote Storagehttps://registry.npmjs.org

    • HTTP Port8083(可选)

(3) 创建 group 仓库(聚合多个仓库)

  1. 同上路径,选择 npm (group)

  2. 配置参数:

    • Namenpm-all

    • Member Repositories: 添加 npm-private 和 npm-proxy

    • HTTP Port8081(通常作为统一入口)

3、理解 Nexus 权限模型

  • 权限(Privileges):最小操作单元(如“读取仓库A”)。

  • 角色(Roles):权限的集合(如“开发者角色”)。

  • 用户(Users):绑定角色获得实际权限。

为 npm 仓库配置角色的步骤

(1) 进入角色管理界面

  1. 登录 Nexus → ⚙️ Settings → Security → Roles

  2. 点击 Create role

(2) 填写基础信息

  • Role IDnpm-developer(自定义名称,如 npm-readonlynpm-admin

  • Role Name: 可读描述(如 "NPM Package Developer")

  • Role Description: 可选说明

(3) 选择权限(关键步骤)

在 Privileges 选项卡中搜索并添加以下权限:

权限类型 功能说明 适用场景
nx-repository-view-npm-*-read 查看/下载所有 npm 仓库 只读用户
nx-repository-view-npm-*-browse 浏览仓库内容树 开发者
nx-repository-view-npm-*-read + nx-repository-view-npm-*-add 下载+发布包 发布权限
nx-repository-admin-npm-*-* 管理 npm 仓库(含删除) 管理员
推荐权限组合
  • 开发者角色(可下载+发布):

    plaintext
     
    nx-repository-view-npm-*-*
    nx-repository-view-npm-*-add
  • 只读角色(仅下载):

    plaintext
     
    nx-repository-view-npm-*-read
  • 管理员角色

    plaintext
     
    nx-repository-admin-npm-*-*
    nx-repository-view-npm-*-*

(4) 保存角色

点击 Create 完成角色创建。

3、创建新用户

  1. 进入 ⚙️ Settings → Security → Users → Create user

  2. 填写信息:

    • IDnpm-user(自定义)

    • First Name: (可选)

    • Last Name: (可选)

    • Email: (可选)

    • Password: 设置复杂密码

    • StatusActive

  3. 分配权限:

    • 在 Roles 选项卡中,添加至少 nx-repository-view-npm-*-*(读写权限)或自定义角色。

 

推送搭建的组件

npm login --registry=http://【ip地址】:8081/repository/npm-private/    #登录私服

npm run build    #打包组件项目
npm publish     #推送项目到私服仓库

使用推送后的组件

首先创建一个新的项目,使用如下命令

# 使用 npm 创建项目

npm create vite@latest vue-use-component-project --template vue

 

# 进入项目目录

cd vue-use-component-project

 

npm install

创建结束后登录到私服,使用npm-user-only用户进行登录,

#登录私仓
npm login --registry=http://【ip】:8081/repository/npm-private/ 
#下载安装推送的组件
npm install @component-demo/vue-component-project@0.1.0 --registry=http://【ip】:8081/repository/npm-private/ --legacy-peer-deps

 

 

 

你好:我的2025

上一篇:兴森