背景
公司领导说要搞内网的CICD,前端项目要自动构建发布。我想内网服务器不能连外网,那构建的时候需要下载依赖包只能通过npm私库实现。后来问了下后端他们的maven私库是通过nexus配置的,正巧我上家公司的前后端私库也是用的nexus。确定了方向,那就直接要了nexus网址,下面是配置过程。
nexus配置
-
登录
点击右上角的Sign In按钮,弹出框里输入管理员的账号、密码。
-
创建仓库
点击齿轮按钮,左侧栏选择Respositories菜单,点击Create repository按钮
-
选择仓库类型(有三种npm仓库类型)
-
创建npm(hosted)私有仓库:用于上传本地的组件
Name字段输入仓库名字,点击Create repository按钮即可创建完成。
-
创建npm(proxy)仓库:用于远程代理(需要联系IT开通访问npm官网 registry.npmjs.org 权限)
Name输入仓库名字, Remote storage字段输入远程代理的npm官网地址 registry.npmjs.org ,点击Create repository按钮即可创建完成。
-
创建npm(group)仓库:用于将上面的私有库和代理库同时管理起来
Name字段输入仓库名字,Members字段里把上面创建的两个库移到右边,其中hosted类型在上面, 点击Create repository按钮即可创建完成。
-
配置上传的权限
将npm Bearer Token Realm从Available区域移入Active区域,点击save保存。
!该步骤非常重要,否则在adduser和publish会一直报错401:Unable to authenticate, need: BASIC realm=“Sonatype Nexus Repository Manager”。
测试私库下载
在仓库列表页面,选择group类型的仓库,点击copy,获取仓库网址
本地CMD里输入下面的命令,用于切换npm和yarn的镜像
npm config set registry http://10.2.32.3:18081/repository/web-group/
yarn config set registry http://10.2.32.3:18081/repository/web-group/
yarn install
如果能成功下载npm包,说明配置成功。
总结
申请服务器IT权限的时候,尽量多申请一些npm镜像地址,避免一个域名访问不通的情况,比如:registry.npmjs.org 、 registry.npmmirror.com 、 registry.npm.taobao.org/