当我运行`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 install
或yarn
时,将下载并安装该文件中列出的包,因此可以运行项目/应用程序。 “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 -g
sudo 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:8123
https-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 问题,如有必要,可能与个别作者联系。 如果本地机器的node 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 上的厨师客户端
Jetstream 与 Liviwere - Laravel 8 - 运行 npm install 时的节点漏洞