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

SAN*_*ITH 95 linux ubuntu node.js npm

运行时我收到此错误sudo npm install.在我的服务器中,早先安装了npm.我试图删除package-lock.json文件package-lock.json,但它没有用.

我的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
Run Code Online (Sandbox Code Playgroud)

She*_*man 126

请参阅https://github.com/npm/npm/issues/16861

这对我有用:
npm cache verify

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

并按预期安装:问题已解决


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

npm cache clean --force

要么

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

要么

通过via更新npm npm i -g npm

要么

删除 package-lock.json

要么

npm cache verify

要么

npm cache clean

要么

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

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

要么

  1. 加入代理.npmrc~目录:

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

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

要么

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

要么

npm config set package-lock false

  • Sheryl,首先:感谢您花时间回答这个问题.很明显,你的答案对人们有帮助.我可以问你这些替代方案的作用,以及为什么有些方法可以在别人没有的时候起作用?谢谢! (3认同)

小智 31

删除package-lock.json文件,然后尝试安装

  • 非常糟糕的解决方案。必须使用 package-lock.json 来控制所有依赖项和版本 (6认同)

SAN*_*ITH 14

实际上,上述内容与服务器端的网络连接有关.当我在服务器中具有良好的连接性时,npm安装变得很好并且没有抛出任何错误

  • 我的在切换到VPN连接后工作正常,所以这肯定是连接问题 (3认同)

Raj*_*Raj 12

我被困在这个问题上很长一段时间,这对我有帮助。

尝试这个:

npm cache clean --force
npm install --update-binary --no-shrinkwrap
Run Code Online (Sandbox Code Playgroud)

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


Mer*_*ury 11

我的问题是两件事:

  1. 糟糕的package-lock.json文件
  2. npm-shrinkwrap.json与package-lock.json文件一起存在

我做的是:

  1. 删除了package-lock.json文件
  2. 删除npm-shrinkwrap.json文件
  3. 再次安装npm(重新创建一个好的包锁文件)

修正了我的错误!


sas*_*alm 8

这个问题确实存在于package-lock.json中,并且用另一个分支的工作版本替换了它之后,它起作用了。

有趣的是看到差异:

在此处输入图片说明

因此,在package-lock.json中确实存在一些完整性校验和,以验证您所下载的文件未被篡改。只是某种程度上,完整性校验和在我们的package-lock.json中被替换为SHA1而不是SHA-512校验和。我不知道这是怎么发生的。

  • 唯一接近为我解决这个问题的解决方案。删除 `package-lock.json` 也可以解决这个问题。至少就我而言。尽管这显然是不可取的。公平地说,我必须在这里提到 OP 试图删除该文件,所以这个答案解决的情况可能有所不同。 (2认同)

小智 6

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

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


小智 5

请尝试以下方法:

npm cache clean --force
Run Code Online (Sandbox Code Playgroud)

这对我有用.

  • 这不会为已经存在的答案添加任何值.最高评价的评论已经提到了"npm cache clean --force",所以这个答案只是读作噪音. (3认同)
  • 尽管此代码可以回答问题,但提供有关如何和/或为什么解决问题的其他上下文将提高​​答案的长期价值。 (2认同)