由于公司代码管理需要在公司搭建了一套内网办公系统。GitLab 代码管理 内外网共用一个。Nexus 依赖管理私服 内外网共用一个。目前遇到的问题是 Nexus 私服 配置完成后安装项目依赖的时候某个插件报错导致项目依赖安装失败。最终找的的原因是该插件的一个依赖库没有上传到npm包管理器使用的在线的Github仓库内网是断网开发代码的所以导致依赖下载失败。一.Nexus私服有三种仓库类型Hosted 仓库定义Hosted仓库是本地托管的仓库用于存储内部构建的构件或第三方构件用途主要用于存放组织内部开发的构件如Maven构件、NPM包等特点完全由本地管理可以进行上传、删除等操作Proxy 仓库定义Proxy仓库是远程仓库的代理用于缓存从远程仓库下载的构件。用途主要用于代理公共仓库如Maven Central、JCenter等减少对外部网络的依赖提高构建速度特点自动缓存从远程仓库下载的构件当本地没有某个构件时会从远程仓库下载并缓存到本地Group 仓库定义Group仓库是一个虚拟仓库它将多个仓库包括Hosted和Proxy仓库组合在一起提供统一的访问点用途主要用于简化客户端配置客户端只需要配置一个Group仓库地址即可访问多个仓库中的构件。特点客户端请求构件时Group仓库会按顺序检查其成员仓库找到后返回给客户端二.依赖下载失败解决办法1.在npm包管理器找到该插件对应版本的包把package.json中的依赖库改成正常的版本号引入形式2.在npm hosted 仓库内 上传 修改后插件库的软件包源代码 package,json 修改后 在终端使用 npm pack 会根据 package.json 自动打包当前项目生成一个 .tgz 文件在Nexus网页版选择上传该插件到指定库3.在npm hosted 仓库内 上传 该插件依赖库的软件包4.在 group 仓库 和 proxy 仓库删除原本存在的就插件保证整个库只有 hosted 仓库 自定义的 插件5.在Nexus设置里面配置group仓库按顺序加入hosted proxy 仓库6.在Nexus设置里面配置 Security Realms 加入npm Bearer Token Realm三. 云桌面 Nexus 私服 npm 管理npm config set registry https://registry.npmmirror.com/ npm config set registry http://192.168.0.194:8081/repository/mings-node/ npm config set registry http://192.168.0.194:8081/repository/ming-node-host/ npm config get registry npm install mpegts.js1.8.0 npm pack 会根据 package.json 自动打包当前项目生成一个 .tgz 文件 npm cache clean --force npm login npm publish