每当切换一个新环境,就可能会出现npm install报错等各种奇怪的问题

一、首先排查网络问题,因为npm默认的包镜像是在npmjs官网,在国内访问有时候或在有些网络环境,会比较慢甚至超时;
注意:不建议安装cnpm等其它包管理器,那可能会出现更多奇怪的问题
解决办法:我们可以切换npm包镜像
  1. 可以通过安装Install from mirror in China,让部分包从淘宝镜像下载;
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
  1. 也可以全局都切换到淘宝镜像
npm install --registry=https://registry.npm.taobao.org
  1. 我们也可以通过安装nrm来管理和测试npm镜像
npm install nrm -g
nrm ls:查看所有可用的镜像
nrm use taobao:使用不同的镜像源
nrm test:测试所选镜像源的速度
二、如果还不行,我们可以考虑删除干净node_modules文件夹,清除npm缓存
npm cache clean -f
还可以直接删除:用户xxx\AppData\Roaming目录下的npm-cache目录
还可以执行:npm cache verify
三、有部分包,会因为版本或者操作系统、nodejs版本等不同而有所差异 ,所以我们可以考虑删除项目中的package-lock.json文件(这个文件,一般项目不提交,因为每个人的操作系统、nodejs环境不同可能对包的版本要求也不同)但是,当某些线上环境频繁install失败时,我们却又可以考虑把对应线上环境npm 和 nodejs版本的package-lock.json文件提交,但是开发人员本地不使用这个文件,以此来解决CICD相关问题;
四、还有一种操作,比如某些包,屡次失败
如项目中使用了node-sass总是安装失败,我们可以先把node-sass从package.json中删除
然后执行npm install把其它包安装完成后
再单独安装该包:npm install node-sass --save-dev