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

在升级node版本后,编译项目时遇到'Cannot read properties of null (reading 'pickAlgorithm')'的错误。常规的解决方法如重装node、删除node_modules和清理缓存无效。问题根源在于node13的package-lock.json与node16结构差异导致的解析错误。解决方案是删除package-lock.json中除特定部分外的所有内容,让node16重新生成,最终成功编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值