公司内网的nexus的npm仓库,自己只有下载的权限,目前该仓库中代理源有2个npm-taobao,npm-taobao2
这2个源都组合在npm-ep这个源地址下,公司对外也只提供npm-ep这个源地址。但是这个ep源在从前面提到的2个代理源同步依赖组件时,各自都有出现同步不完整导致依赖包不完整缺失的情况。比如在npm-taobao源中jsbn这个插件就有缺失不完整文件损坏的情况,但是print-js是正常的。npm-taobao-2的源中print-js出现损坏的情况,但是jsbn正常的。自己本地下载依赖是从npm-ep下载,可恶的就是ep源在nexus上面看的时候很多依赖包都是以损坏的那个为主,导致本地下载无法完成。
node:16.20.2 npm:8.19.4
第一次初始化安装时
自己的思路是:本地先设置源地址npm-taobao,先下载一部分,下载失败后切换到npm-taobao2再下载,下载失败后再切换到npm-ep,这样貌似不得行.
npm install安装失败后,会自动删除node_modules。
后续切换到低版本的node和npm 设置npm config set rollback false。
node_modules确实不自动删除了,但是下载依然是报错,无法正常安装
第一点:工程是我自己npm init -y创建的新工程,里面除了package.json之外,甚至package-lock.json都没有。
第二点:所有的操作之前都会执行下npm cache clean --force 清理缓存。
第三点:不知道是因为node版本的原因还是内网环境原因,npm cli命令不支持,无法使用。
第四点:应该是 @vue/cli中的某些深层次依赖包出现了问题,所以没办法使用npm scoped域的方式设置不同源地址的方式解决。因为你甚至无法搞清楚,到底有多少依赖包出了问题,只知道有很多@vue/cli深层依赖包出了问题,而这些依赖包大部分在npm-taobao和npm-taobao2两个源中都有,只是在2个源地址中交替正常和异常。
建多源配置文件就行
建一个 .npmrc :
写自动切换源的脚本
install.js:
用法: