当我运行`npm install`时,它返回`ERR!代码 EINTEGRITY` (npm 5.3.0)

Posted

技术标签:

【中文标题】当我运行`npm install`时,它返回`ERR!代码 EINTEGRITY` (npm 5.3.0)【英文标题】:When I run `npm install`, it returns with `ERR! code EINTEGRITY` (npm 5.3.0) 【发布时间】:2018-05-12 18:11:42 【问题描述】:

我在运行 sudo npm install 时遇到此错误。在我的服务器上,之前安装了 npm。我尝试删除package-lock.json 文件,并运行npm cache clean --force,但没有成功。

我的 npm 版本是 5.3.0。

错误:

npm ERR! code EINTEGRITY
npm ERR! sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== integrity checksum failed when using sha512: wanted sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== but got sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==. (65117 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2017-11-29T05_33_52_182Z-debug.log

【问题讨论】:

请参阅下面的解决方案以避开问题的原因,尤其是当连接问题时。 就我而言,只需再次运行命令即可! 运行以下 2 个命令解决了我的问题。 $ rm -rf package-lock.json node_modules $ npm install 【参考方案1】:

问题确实出在package-lock.json 中,在将其替换为另一个分支的工作版本后,它就可以工作了。

有趣的是看到差异:

所以package-lock.json 中确实存在一些完整性校验和,它在我们的package-lock.json 中被替换为 SHA1 而不是 SHA-512 校验和。请参阅here 了解更多信息。

如果您在另一个分支中没有工作版本。考虑消息

npm ERR! code EINTEGRITY
npm ERR!
  sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
integrity checksum failed when using sha512: wanted
  sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
but got
  sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==
. (65117 bytes)

使用第一个校验和找到package-lock.json中的包:

sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==

并将第三个校验和放入其“完整性”字段:

sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==

更详细的描述是here。

【讨论】:

package-lock.json 文件在哪里? @Mamen 在你的应用的根目录下,接下来是 package.json。 package.json 列出了您的应用程序编译/运行所需的依赖项(包)。当您运行yarn installyarn 时,将下载并安装该文件中列出的包,因此可以运行项目/应用程序。 “lock”文件是 npm 和 yarn 的区别之一,它确保包的版本和完整性。 唯一接近为我解决问题的解决方案。删除package-lock.json 也应该对其进行补救。至少在我的情况下。尽管这显然是不可取的。公平地说,我必须在这里提到OP试图删除文件,所以这个答案地址的情况可能有些不同。【参考方案2】:

确保您没有运行 ***

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案3】:

见https://github.com/npm/npm/issues/16861

这对我有用:npm cache verify

然后我又跑了:npm install -g create-react-app

它按预期安装:问题已解决。


GitHub issue 中提到的其他解决方案包括:

npm cache clean --force

删除Users%username%\AppData\Roaming(Windows 7 和 Windows 10)中的 npm 和 npm-cache 文件夹并运行 npm install

通过npm i -g npm更新npm

删除package-lock.json

npm cache clean

执行以下步骤来解决问题:

    查找所有过时的软件包并更新主题:npm outdated -gsudo npm i -g outDatedPKG 将 npm 升级到最新版本:sudo npm i -g npm 删除package-lock.json文件。 在~/.npm 中删除_cacache 目录: npm cache verify 每次遇到该错误时,请执行第 2 步和第 3 步。 如果仍然出现错误,请清除 npm 的缓存:npm cache clean --force

    将代理添加到~目录中的.npmrc

proxy=http://localhost:8123https-proxy=http://localhost:8123

    再试一次!缓慢的互联网连接和审查可能会导致这个丑陋的问题。

npm cache clear --force && npm install --no-shrinkwrap --update-binary

npm config set package-lock false

【讨论】:

谢谢!这非常有帮助,我解决了选择一些给定选项的问题。 超级!!很高兴能提供帮助:-) Sheryl,首先:感谢您抽出宝贵时间回答这个问题。很明显,您的回答对人们有帮助。我能问你这些替代方案中的每一个都有什么作用,为什么有些可能有效而另一些无效?谢谢! @AndresF。我对纱线的底层是如何工作的,或者什么时候/为什么某些方法比其他方法更有效,并没有深入的了解。在某些情况下,它们基本上完成了相同的事情,但以不同的方式触发它。我链接到提出所有这些解决方案的 github 问题 - 它是我的答案中已编译列表的来源。我建议研究 yarn 和 npm 的弱点,或查看链接的 github 问题,如有必要,可能与个别作者联系。 如果本地机器的nod​​e js版本有任何更新,都会出现这个错误。【参考方案4】:

如果以上方法都不能解决您的问题,那么只需升级您的 npm 版本并尝试。它对我有用。

【讨论】:

欢迎SO,请考虑给mode详细解答【参考方案5】:

对我来说,简单快速的解决方法是 npm install 它说 sha 错误的特定包。假设您的包裹名为awesome-package

我的解决方案是:

npm i awesome-package

这更新了我在 package-lock.json 中的 sha。

【讨论】:

【参考方案6】:

在我的情况下,我的 linux 发行版中缺少 sha 命令;步骤是

为 sha512 添加了软件包(在我的发行版 sudo apt install hashalot 上) npm 缓存验证 rm -rf 节点模块 npm 安装

【讨论】:

【参考方案7】:

对我有用的是npm cache verify 然后重新运行您的命令。一切都应该很好。

【讨论】:

【参考方案8】:

在浏览完所有答案并执行其中大部分之后。虽然我拒绝尝试重启魔法,但最终,在我的 macbook(MacOS Catalina Ver. 10.15.7)上重启后问题得到了解决。

看起来确实是缓存问题,但我执行的命令都没有清除缓存。

【讨论】:

【参考方案9】:

我有同样的问题。我使用 yarn 而不是 npm 来安装依赖项,并且成功了。

yarn add *****

【讨论】:

【参考方案10】:

这对我有用。 在 CMD 中打开项目 奔跑

npm cache verify 
npm install 
npm start

【讨论】:

【参考方案11】:

以上答案都不适合我。我的问题的解决方案是更改在 package.json 中使用快照依赖项的方式。使用下面的模板来拉取你需要的快照依赖

"dependency": "git+http://github.com/[pathtoproject].git#[branchname]",

【讨论】:

【参考方案12】:

在我检查路由器设置之前,所有解决方案都失败了;它被设置为仅 IPV4 .. 我更改并放入了 ipv4v6,现在一切正常。

【讨论】:

【参考方案13】:

我遇到了这个问题。这是我的网络连接。我更改了网络(从宽带 WiFi 到 4G WiFi)并尝试了。它奏效了。

我的宽带 ISP 阻止了所有 http 请求。这可能是我猜测的原因。

【讨论】:

【参考方案14】:

在我运行这个命令之前

npm install typescript -g

更改命令后它完美运行。

npm install -g typescript

【讨论】:

【参考方案15】:

我遇到了同样的问题。另外,当我尝试从其他开发人员那里挑选解决方案来解决问题时,我遇到了像这里列出的问题一样的几个问题。

Angular 9 ng new myapp gives error The Schematic workflow failed

https://medium.com/@codewin/npm-warn-deprecated-request-2-88-2-b6da20766fd7

最后在尝试清除缓存并验证并重新安装不同版本的节点和 npm 更新、nvm 和许多其他解决方案(如设置代理和更好的互联网连接)后,我仍然无法解决。

对我有用的是:我在 C:\Users--- 文件夹中浏览了一下,找到了 package-lock.json 和 .npmrc 文件。我删除了那些并重新安装了角度并尝试了。不同模块的 npm install 和卸载开始工作。

【讨论】:

【参考方案16】:

在终端输入“ipconfig”或“ifconfig”时,您应该检查连接特定的DNS Suffix

【讨论】:

【参考方案17】:

这还没有提到,但请确保您的系统时间是正确的。如果它太不同步,则会导致 EINTEGRITY 错误。当你在做 npm 发布/安装时。

【讨论】:

【参考方案18】:

.npmrc 和注册表更新为https:// 对我有用

registry=https://registry.npmjs.org/

【讨论】:

【参考方案19】:

试试这个

  Step-1) Delete package-lock.json from root folder.
  Step-2) Delete node_modules folder
  Step-3) run npm install command in root

【讨论】:

【参考方案20】:

我被困了很长时间,这对我有帮助。

试试这个:

npm cache clean --force
npm install --update-binary --no-shrinkwrap

在研究 GitHub 问题后找到了这个答案!!

【讨论】:

【参考方案21】:

在我工作的公司中,我们多次遇到过这个问题。从 .nvm 文件夹中删除 node_modules 文件夹解决了问题:

rm -rf ~/.nvm/versions/node/v8.6.0/lib/node_modules

【讨论】:

【参考方案22】:

我正在使用私有 npm 注册表并尝试安装私有 npm 模块。登录到 npm 本地注册表修复它(使用命令 npm --add-user

【讨论】:

【参考方案23】:

我的问题是两件事:

    错误的 package-lock.json 文件 npm-shrinkwrap.json 与 package-lock.json 文件的存在

我所做的是:

    已删除 package-lock.json 文件 删除 npm-shrinkwrap.json 文件 再次运行 npm install(它重新创建了一个良好的包锁定文件)

修正了我的错误!

【讨论】:

我在 AWS Codebuild 上构建时遇到了这个问题。这对我有用。谢谢。 在我的情况下是包锁!问题为我解决了!谢谢!【参考方案24】:

作为一种解决方法,请按照以下步骤操作:

    进入项目目录 删除 node_modules 目录:rm -rf node_modules 删除 package-lock.json 文件:rm package-lock.json 清除缓存:npm cache clean --force 运行npm install --verbose 如果按照上述步骤操作后问题仍然存在,请使用 --verbose 向我们提供安装命令的输出。

【讨论】:

我是 npm 新手。详细给了我一些提示。【参考方案25】:

我在我的组织的代理后面,运行以下命令为我解决了这个问题

npm config set proxy http://proxy.yourproxydomain.com:port
npm config set https-proxy http://proxy.yourproxydomain.com:port
npm config set strict-ssl false
npm config set registry https://registry.npmjs.org/

【讨论】:

【参考方案26】:

尝试以下方法:

npm cache clean --force

这对我有用。

【讨论】:

这不会为已经存在的答案增加任何价值。投票率最高的评论已经提到了npm cache clean --force,所以这个答案只是噪音。 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。【参考方案27】:

在您的项目上运行以下命令..

npm rm -rf node_modules && npm rm package-lock.json && npm rm -rf ~/.npm && npm install --update-binary --no-shrinkwrap

【讨论】:

【参考方案28】:

我遇到了一个非常相似的问题,就我而言,它的工作原理是:

npm clean

这是 nuclear 选项,因为它会从缓存中清除每个包,如 here 所解释的那样。

【讨论】:

【参考方案29】:

这里有几个有效且有用的回答,但我想补充一点,就我而言,最简单的解决方案是:

    删除package-lock.json; 删除文件夹 AppData\Local\npm\cache 或 AppData\Roaming\npm\cache; 删除文件夹 node_modules.staging; 再次运行 npm install。

之后一切顺利。

【讨论】:

【参考方案30】:

SherylHohman's answer 解决了我遇到的问题,但只是在我切换了互联网连接之后。最初,我在工作时使用硬线连接,然后在工作时切换到 WiFi 连接,但这仍然不起作用。

作为最后的手段,我将我的 WiFi 切换到了袖珍 WiFi,并且运行以下运行良好:

npm cache verify

npm install -g create-react-app

create-react-app app-name

希望这对其他人有所帮助。

【讨论】:

以上是关于当我运行`npm install`时,它返回`ERR!代码 EINTEGRITY` (npm 5.3.0)的主要内容,如果未能解决你的问题,请参考以下文章

在 node-gyp 重建时挂在 npm install 上的厨师客户端

npm install 无法解析依赖树

Jetstream 与 Liviwere - Laravel 8 - 运行 npm install 时的节点漏洞

npm install 遇到问题

为啥 npm install 在 git bash 上不起作用

通过“ npm install”安装时找不到Testcafe命令