一、部署nexus
本文采用docker方式部署nexus
安装docker
yum install -y docker
拉取nexus镜像
docker pull sonatype/nexus3
准备本地映射目录,以便本地化持续存储数据,目录可根据自己需求随意设置:
mkdir -p /opt/nexus-data
本地创建的目录赋予权限,避免服务启动异常(踩过的坑)
chmod -R 777 /opt/nexus-data
启动nexus服务
docker run -d --name nexus3 \
--restart=always \
-p 8081:8081 \
-p 8082:8082 \
-p 8083:8083 \
-p 8084:8084 \
-p 8085:8085 \
-v /opt/nexus-data:/nexus-data \
sonatype/nexus3
服务启动之后,使用部署机器ip+8081端口登陆nexus页面,刚部署完成可能需要等待1-2分钟才可正常进入页面
二、npm配置
(1)登陆nexus页面:ip:8081
(2)首次登陆nexus的admin密码:进入nexus容器,查看/nexus-data/admin.password
(3)输入步骤2中查到的密码后直接开始修改密码操作
(4)修改密码后提示是否启用匿名访问,需要选择enable,否则npm本地仓库在使用时会出现访问失败,需要登录的报错
(5)打开设置 -> repositories 页面,点击 Create repository 按钮,创建仓库
(6)先创建npm(proxy) 仓库,即代理仓库
填入仓库名以及代理地址,代理地址可使用 npm 官方镜像地址 https://registry.npmjs.org
只需要上述2项即可点击底部 Creaete repository 完成创建
(7)创建 npm(hosted) 仓库,即私服仓库
输入仓库名即可点击底部 Creaete repository 完成创建。
(8)创建 npm(group) 仓库,npm 组
当我们从 npm(group) 这个仓库安装 npm 包时,首先会查看该仓库中是否存在,不存在时则会使用代理仓库到官方仓库进行下载
创建 npm(group) 需要填写仓库名,然后将 npm(proxy) 和 proxy(hosted) 设置为成员即可,点击底部 Creaete repository 完成创建
三、使用npm
1.在另一台机器上执行npm install时,添加–registry指定私有npm仓库地址,下代码示例为我本地虚拟机测试ip,需根据实际部署ip进行更改
npm install --registry=http://172.16.27.109:8081/repository/npm-group/
2.如果出现下图报错
因为nexus没有允许匿名访问的,需要设置为允许匿名访问
打开设置页面 Security
-> Anonymous
,勾选 Allow anonymous users to access the server
即可,点击 save 保存
3.如果觉得每次都需要指定 --registry
的方式较麻烦,我们可以在需要安装npm依赖的机器上使用
npm config set registry http://172.16.27.109:8081/repository/npm-group/
将 npm 默认的镜像改成我们私服的镜像,这样就不需要每次都指定镜像源了,当然,里面的ip、端口,group名需要根据实际进行修改