EINTEGRITY:npm 5.0 完整性检查和 modernizr.com 依赖
EINTEGRITY: npm 5.0 integrity check and modernizr.com dependency
我在安装包的 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
再次让事情正常进行,它覆盖了我的 package-lock.json
中 "Modernizr"
的 "integrity"
字段。
每次从这个 link 获取的 Modernizr
包发生变化并且我的包依赖项需要重新安装时(例如,每次 CI 构建)
如果没有其他办法解决呢?我希望我不必在我的 .gitignore
文件中放置 package-lock.json
:(
关于我的环境的更多数据:
$ npm -v
5.0.3
$ node -v
v6.11.0
完整性字段的作用是在发生变化时提醒你,所以如果你不希望它存在,你可以在你的 npmrc 中禁用 package-lock.json 文件。只需设置 package-lock=false
注意:我是 Modernizr 的开发者,并与 npm-cli 团队讨论过这个问题。根本原因似乎是 npm5 和早期版本之间 SHA 类型的变化。核对 node_modules
文件夹将修复它
查找所有过时的包并更新主题:
npm outdated -g
sudo npm i -g outDatedPKG
将 npm 升级到最新版本:
sudo npm i -g npm
删除 package-lock.json
文件。
删除 ~/.npm 中的 _cacache
目录:
npm cache verify
4.1。每次出现该错误时,请执行第 2 步和第 3 步。
如果仍然出现错误,请清除 npm 的缓存:
npm cache clean --force
只要做两件事就可以解决
第一:
npm 缓存清理 --force
秒:
npm i -g npm
然后安装你想要的
我遇到了同样的错误,我通过以下方式解决了它:
- 正在删除包-lock.json
- 运行 "npm install"
我终于解决了这个问题。
我们的团队放弃了没有 SEMVER 符号的 URL 依赖,在本例中 https://modernizr.com/download?setclasses-flash
并使用 modernizr-loader
和 webpack
。在 npm 上也有 gulp
和 grunt
工具的等价物,选择并使用你最喜欢的一个。
在使用它们之后,我们终于摆脱了返回 EINTEGRITY
npm 错误而无需使用 package-lock.json
或 node_modules
.
- $ rm -rf package-lock.json node_modules
- $ npm install --cache /tmp/empty-npm-cache
如果这解决了问题,请清除您的全局 npm 缓存以修复损坏。
编辑包-lock.json,找到你想跳过的那个,在这种情况下就是它失败的那个
sha1-tU7jWojzuU8MIY2VLAx+BwluNo0
并从中删除完整性参数,即
},
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
"dev": true
},
到...
},
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"dev": true
},
之后运行 npm install,会检查剩下的,跳过这个完整性
我在安装包的 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
再次让事情正常进行,它覆盖了我的 package-lock.json
中 "Modernizr"
的 "integrity"
字段。
每次从这个 link 获取的 Modernizr
包发生变化并且我的包依赖项需要重新安装时(例如,每次 CI 构建)
如果没有其他办法解决呢?我希望我不必在我的 .gitignore
文件中放置 package-lock.json
:(
关于我的环境的更多数据:
$ npm -v
5.0.3
$ node -v
v6.11.0
完整性字段的作用是在发生变化时提醒你,所以如果你不希望它存在,你可以在你的 npmrc 中禁用 package-lock.json 文件。只需设置 package-lock=false
注意:我是 Modernizr 的开发者,并与 npm-cli 团队讨论过这个问题。根本原因似乎是 npm5 和早期版本之间 SHA 类型的变化。核对 node_modules
文件夹将修复它
查找所有过时的包并更新主题:
npm outdated -g
sudo npm i -g outDatedPKG
将 npm 升级到最新版本:
sudo npm i -g npm
删除
package-lock.json
文件。删除 ~/.npm 中的
_cacache
目录:npm cache verify
4.1。每次出现该错误时,请执行第 2 步和第 3 步。
如果仍然出现错误,请清除 npm 的缓存:
npm cache clean --force
只要做两件事就可以解决
第一: npm 缓存清理 --force
秒: npm i -g npm
然后安装你想要的
我遇到了同样的错误,我通过以下方式解决了它:
- 正在删除包-lock.json
- 运行 "npm install"
我终于解决了这个问题。
我们的团队放弃了没有 SEMVER 符号的 URL 依赖,在本例中 https://modernizr.com/download?setclasses-flash
并使用 modernizr-loader
和 webpack
。在 npm 上也有 gulp
和 grunt
工具的等价物,选择并使用你最喜欢的一个。
在使用它们之后,我们终于摆脱了返回 EINTEGRITY
npm 错误而无需使用 package-lock.json
或 node_modules
.
- $ rm -rf package-lock.json node_modules
- $ npm install --cache /tmp/empty-npm-cache
如果这解决了问题,请清除您的全局 npm 缓存以修复损坏。
编辑包-lock.json,找到你想跳过的那个,在这种情况下就是它失败的那个
sha1-tU7jWojzuU8MIY2VLAx+BwluNo0
并从中删除完整性参数,即
},
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
"dev": true
},
到...
},
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"dev": true
},
之后运行 npm install,会检查剩下的,跳过这个完整性