首先,列出所报的错误:
node_modules\[email protected]\node_modules\.bin\esgenerate.cmd
This is probably not a problem with npm,there is likely additional logging output above
(致命报错)sha1-CYJ/jxuVjEmMt5fncrd5bGHUxYQ= integrity checksum failed when using sha1: wanted sha1-CYJ/jxuVjEmMt5fncrd5bGHUxYQ= but got sha512-BJh7xOBzM7QVcapcN4EbPQ1eZ8Pii1/oy+dzqjZTilRSIDD7SRPdFpnUJwZvs8lCrhtBAyJbYFsdm2SogXWHVQ== sha1-j2DAWnLIqsvdIkAW9OGpZmSr2Ko=
npm audit fix
to fix them, or npm audit
for details具体过程,待我娓娓道来
因为该插件提供了方便的实现方法,因此想要使用它(但是,万万没想到,就是这个几分钟就可以搞出来的东西,磨了我2个多小时,所谓,bug 就在一不留神之间出现,丝毫没有提示)
npm install moment --save
但是直接报错:
报错信息让我去删除这个路径下的文件:node_modules\[email protected]\node_modules\.bin\esgenerate.cmd
但是,当我删除了这个文件之后,npm install 更新一下,再重启,又报错:
去找了这个路径,发现没有文件
一般情况下,有问题通过 npm install,就可以得到解决。这次我也使用了这个命令,执行结束,重启项目,但是却出乎意料了
到这里,很明显,项目崩了
接下来就是一个漫长的修复过程
现在要修复的报错是:This is probably not a problem with npm,there is likely additional logging output above
搜索了一下,找到一篇文章,里面介绍了三种可能的解决方案,我的情况属于第三种
按照上面的方案,看起来是清除的很彻底,但是,我还是先用代价小一点的方式进行尝试一下,毕竟,如果成功了,不会耗费太多时间(但这个问题却足足耗费了近3h……,我承认部分原因是由于没有及时采用最果断的方法,但是这 npm 执行的速度哪里是我说快就会快的呀,我不得不等待,每次执行都是漫长的等待)
由于这可能是一个不可逆的修复过程,因此,在进行处理之前,先将项目备份了一下
这个时候,我又懒了一下。因为之前有过经历,直接在项目中删除 node_modules,然后 npm install
就可以
sha1-CYJ/jxuVjEmMt5fncrd5bGHUxYQ= integrity checksum failed when using sha1: wanted sha1-CYJ/jxuVjEmMt5fncrd5bGHUxYQ= but got sha512-BJh7xOBzM7QVcapcN4EbPQ1eZ8Pii1/oy+dzqjZTilRSIDD7SRPdFpnUJwZvs8lCrhtBAyJbYFsdm2SogXWHVQ== sha1-j2DAWnLIqsvdIkAW9OGpZmSr2Ko=
意思是,sha1 CYJ/jxuVjEmMt5fncrd5bGHUxYQ=使用sha1时完整性校验和失败
可以看出来,情况很不好,已经到了完整性校验都无法通过的地步
到了这个地步,我竟然还想要只通过更新 node_modules 来解决问题,我好像有点佩服我的执着了(嗯……钻牛角尖的功夫很强)
参照一篇文章,windows下使用命令删除 node_modules 用到 rimraf
,因此需要先安装 npm 包(全局安装)
npm install rimraf -g
然后,进入包含 node_modules 的文件夹,再输入指令
rimraf node_modules
删除之后,重新执行 npm install 命令
但是,尝试了多次均无效
无奈,只能进行最后的对抗了,采用彻底清除方式
Windows下依次执行以下命令:
rimraf node_modules
rimraf package-lock.json
npm cache clear --force // 清缓存
npm install
截图如下:
执行结束,截图如下:
方框圈出来的部分,给出的提示信息是,有部分内容还需要继续修复一下。看看具体信息:缺少 [email protected]
执行修复操作:
这里有一点要注意,执行这个操作的时候要确保在同一个 cmd
窗口。我就是因为在两个命令行窗口,导致无法同步,明明已经执行修复命令,但是却依然不奏效,报错信息一直在循环(如下所示)