先看报错:
先说下网上大多数的解决方案:
方案一:
重新安装node解决
方案二:
删了node models重新下
或者直接下载CNPM(淘宝镜像)进行安装 CNPM安装办法
npm install -g cnpm -registry=https://registry.npm.taobao.org
查看cnpm是否真安装成功 cnpm -v
方案三:
清除缓存npm cache clear --force之后再重新安装依赖npm install
我的解决方案
基本上都是以上这三种方法,先说下我的项目为什么会出现这种报错,项目原先用的node13和14的版本,然后我们将node 升到16后发现原先的所有项目都编译不了了,全报这种错误。
测试的时候遇到的假象,当将node13升到16的时候,重新编译,编译是正常的,但是后来发现当node_modules 删除后重新编译就会出现上面的错,原因可能是我们node13编译的node_modules没有删除,项目一直读的node13编译的东西,给我们以为我们安装的node16是成功的。
遇到这类问题,牵扯到node升级,以上的解决方案并没能解绝。
最后解决方案,找到package-lock.json
文件。将图中圈红的内容保留,其余的全部删除,然后npm install
重新编译,package-lock.json会生成一份新的文件。最后编译成功。得以解决。
总结:
node13生成的 package-lock.json 在结构上可能与node16的package-lock.json 结构上进行了大变动。所以我们用node13生成的package-lock.json让node16去解析,肯定是解析不了的。所有我们将内容删掉,node16给我们生成了一份新的内容。理论上说不会影响我们的项目,因为我们用的各种包的版本是在package.json内定义的,生成的package-lock.json内的版本依赖也是参照的package.json生成出来的,并不影响整体框架的使用。
到此这篇关于npm install编译时报“Cannot read properties of null (reading ‘pickAlgorithm‘)“错误的解决办法的文章就介绍到这了,更多相关npm install编译时报错内容请搜索阿兔在线工具以前的文章或继续浏览下面的相关文章希望大家以后多多支持阿兔在线工具!