发布时间:2023-08-22 13:00
先看报错:
先说下网上大多数的解决方案:
方案一:
重新安装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生成出来的,并不影响整体框架的使用。