EINTEGRITY:npm 5.0完整性检查和modernizr.com依赖

安装我的软件包的代码时遇到了这个错误:

$ 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 

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

如果没有其他办法解决这个问题? 我希望我不会在我的.gitignore文件中放置package-lock.json 🙁

更多关于我的环境的数据:

 $ npm -v 5.0.3 $ node -v v6.11.0 

  1. find所有过期的软件包并更新主题:

    npm outdated -g sudo npm i -g outDatedPKG

  2. 将npm升级到lateste版本:

    sudo npm i -g npm

  3. 删除package-lock.json文件。

  4. 删除〜/ .npm中的_cacache目录:

    npm cache verify

    4.1。 每当我得到这个错误,做第2步和第3步。

  5. 如果仍然出现错误,请清除npm的caching:

    npm cache clean --force

只要做两件事的解决scheme

第一: npmcaching清理 – 力量

第二: npm我-g npm

而不是安装你想要的东西

完整性字段的要点是在某些事情发生变化时提醒您,所以如果您不希望它存在,您可以禁用npmrc中的package-lock.json文件。 只要设置package-lock=false

注意:我是Modernizr的开发者,并且与npm-cli团队讨论了这个问题。 根本原因似乎是npm5和早期版本之间SHAtypes的变化。 啃node_modules文件夹将解决它