我在安装软件包的deps时遇到此错误:

$ npm i
npm ERR! code EINTEGRITY
npm ERR! sha1-tU7jWojzuU8MIY2VLAx+BwluNo0= integrity checksum failed when using sha1: wanted sha1-tU7jWojzuU8MIY2VLAx+BwluNo0= but got sha1-oXYP0kzpbhku0KU+phy353lbBhQ=. (26624 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/tlenex/.npm/_logs/2017-06-22T10_18_19_773Z-debug.log

问题出在我的Modernizr依赖项上:
"dependencies": {
  "Modernizr": "https://modernizr.com/download?setclasses-flash"
}

有什么方法可以解决此问题或忽略此完整性检查?

目前我要运行
npm i https://modernizr.com/download?setclasses-flash

再次使工作正常,这将覆盖"integrity""Modernizr"package-lock.json字段。
每当从此链接获取的Modernizr软件包发生更改,并且需要重新安装我的软件包依赖项时(例如,每次在CI构建中),都可能发生这种情况

如果没有其他方法可以解决这个问题?我希望我不必将package-lock.json放在我的.gitignore文件中:(

有关我的环境的更多数据:
$ npm -v
5.0.3
$ node -v
v6.11.0

最佳答案

完整性字段的目的是在发生某些更改时向您发出警报,因此,如果您不希望它存在,则可以在npmrc中禁用package-lock.json文件。只需设置package-lock=false
注意:我是Modernizr的开发人员,并与npm-cli团队就此问题进行了交谈。根本原因似乎是npm5和早期版本之间SHA类型的更改。删除node_modules文件夹将对其进行修复

关于node.js - 完整性: npm 5. 0完整性检查和modernizr.com依赖性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44699090/

10-11 23:49