npm install 编译时报“Cannot read properties of null (reading ‘pickAlgorithm‘)“

先看报错:
在这里插入图片描述

先说下网上大多数的解决方案:
方案一:

重新安装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生成出来的,并不影响整体框架的使用。

猜你喜欢

转载自blog.csdn.net/weixin_43865196/article/details/125254459