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
-
find所有过期的软件包并更新主题:
npm outdated -g
sudo npm i -g outDatedPKG
-
将npm升级到lateste版本:
sudo npm i -g npm
-
删除
package-lock.json
文件。 -
删除〜/ .npm中的
_cacache
目录:npm cache verify
4.1。 每当我得到这个错误,做第2步和第3步。
-
如果仍然出现错误,请清除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
文件夹将解决它