code EINTEGRITY错误解决方案

做不同Node版本的项目开发时,频繁切换Node版本,导致某项目执行npm install时报错,安装不上,具体错误如下

1
2
3
4
5
6
$ npm i
npm ERR! code EINTEGRITY
npm ERR! sha512-4Liqw7ccABzsWV5BzeZeGRSq7KWIgQYzOcmRDEwSX4WAawlQpcAFXZ1Kid72XYrjSnK5yxOS6Gez/iGusYE/Pw== integrity checksum failed when using sha512: wanted sha512-4Liqw7ccABzsWV5BzeZeGRSq7KWIgQYzOcmRDEwSX4WAawlQpcAFXZ1Kid72XYrjSnK5yxOS6Gez/iGusYE/Pw== but got sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==. (5537 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\mulia\AppData\Roaming\npm-cache\_logs\2022-12-21T03_19_34_513Z-debug.log

看问题描述,大概能分析出来是因为npm的sha512验证通不过,多半是因为来回切换npm版本导致的。

网上找了一下,解决方法有两种

1
npm cache verify

1
npm cache clean --force

我这里两个方法都试了几遍,问题并没有解决,尝试了很多操作:

切换到常用的几个node版本,分别清理一下npm缓存;
删除node_modules文件夹,重新安装;
重启vscode,重启电脑;

问题依然存在,这可真是难搞。

继续尝试:

删掉package-lock.json;
删除node_modules文件夹;
再清理npm缓存;
最后重新安装。

这次终于搞定了。看来关键步骤应该是要删除package-lock.json才行。

本文永久链接: https://www.mulianju.com/code-eintegrity/