搭建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:
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
仓库(存储私有包)
-
进入 Settings → Repository → Repositories → Create repository
-
选择 npm (hosted)
-
配置参数:
-
Name:
npm-private
(自定义名称) -
Version Policy:
Mixed
(允许稳定版和测试版) -
Deployment Policy:
Allow redeploy
(允许覆盖发布) -
HTTP Port:
8082
(可选,默认 8081)
-
(2) 创建 proxy
仓库(代理官方 npm 仓库)
-
同上路径,选择 npm (proxy)
-
配置参数:
-
Name:
npm-proxy
-
Remote Storage:
https://registry.npmjs.org
-
HTTP Port:
8083
(可选)
-
(3) 创建 group
仓库(聚合多个仓库)
-
同上路径,选择 npm (group)
-
配置参数:
-
Name:
npm-all
-
Member Repositories: 添加
npm-private
和npm-proxy
-
HTTP Port:
8081
(通常作为统一入口)
-
3、理解 Nexus 权限模型
-
权限(Privileges):最小操作单元(如“读取仓库A”)。
-
角色(Roles):权限的集合(如“开发者角色”)。
-
用户(Users):绑定角色获得实际权限。
为 npm 仓库配置角色的步骤
(1) 进入角色管理界面
-
登录 Nexus → ⚙️ Settings → Security → Roles
-
点击 Create role
(2) 填写基础信息
-
Role ID:
npm-developer
(自定义名称,如npm-readonly
、npm-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 仓库(含删除) | 管理员 |
推荐权限组合
-
开发者角色(可下载+发布):
nx-repository-view-npm-*-* nx-repository-view-npm-*-add
-
只读角色(仅下载):
nx-repository-view-npm-*-read
-
管理员角色:
nx-repository-admin-npm-*-* nx-repository-view-npm-*-*
(4) 保存角色
点击 Create 完成角色创建。
3、创建新用户
-
进入 ⚙️ Settings → Security → Users → Create user
-
填写信息:
-
ID:
npm-user
(自定义) -
First Name: (可选)
-
Last Name: (可选)
-
Email: (可选)
-
Password: 设置复杂密码
-
Status:
Active
-
-
分配权限:
-
在 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