我在运行sudo npm安装时得到这个错误。在我的服务器上,npm已经安装好了。我试过删除包锁。Json文件,并运行NPM缓存清理-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
参见https://github.com/npm/npm/issues/16861
这招对我很管用:
NPM缓存验证
然后我又跑了一遍:
NPM install -g create-react-app
并按预期安装:问题已解决。
GitHub问题中提到的其他解决方案包括:
NPM缓存清理——force
OR
删除Users%username%\AppData\Roaming (Windows 7和Windows 10)中的npm和npm-cache文件夹,并运行npm install
OR
通过npm i -g npm更新npm
OR
删除package-lock.json
OR
NPM缓存清理
OR
执行以下步骤来解决问题:
查找所有过期包并更新主题:
NPM过时-g
sudo npm i -g outDatedPKG
将npm升级到最新版本:
Sudo NPM I -g NPM
删除package-lock。json文件。
删除~/.npm下的_cache目录:
NPM缓存验证
每次我得到错误,执行步骤2和3。
如果你仍然得到错误,清除npm的缓存:
NPM缓存清理——force
OR
添加代理到~目录下的.npmrc:
代理= http://localhost: 8123
https-proxy = http://localhost: 8123
再试一次!缓慢的网络连接和审查制度可能会导致这个丑陋的问题。
OR
NPM cache clear—force && NPM install—no-shrinkwrap—update-binary
OR
NPM的包锁设置为false
问题确实出在包锁上。在用另一个分支的工作版本替换它之后,它工作了。
有趣的是看到差异:
在包锁中确实有一些完整性校验和。Json,它在package-lock中被替换。使用SHA1代替SHA-512校验和。更多信息请看这里。
以防您在另一个分支中没有工作版本。考虑信息
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==
然后将第三个校验和放入它的“integrity”字段:
sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==
这里有更详细的描述。
我在升级到节点18时遇到了这个问题——我的包锁文件保留了来自我们团队不再使用的自定义注册表的陈旧解决方案。
不幸的是,移除包锁、清除缓存和运行npm install还不够。
在package-lock和npm install中删除过时的分辨率为我解决了这个问题。
这里我删除了以“resolved”开头的行:
// package-lock.json
"node_modules/closest-file-data": {
"version": "0.1.4",
- "resolved": "https://foo.foobar.io/foo/api/npm/npm-dev/closest-file-data/-/closest-file-data-0.1.4.tgz"
,
"integrity": "sha1-l1+HwTLymdJKA3W59jyj+4j3Kzo=",
通常你希望避免手动修改这个文件,但我的机器一直坚持我使用缓存包