Node.js 在npm安装上,我得到了;未处理的拒绝错误:完整性检查失败";,但是当我删除package-lock.json时,错误消失了
我有一个在GIT repo中进行版本控制的nodejs项目。当我克隆项目时,会包含package-lock.json(应该是这样),但当我执行“npm安装”时,会出现错误Node.js 在npm安装上,我得到了;未处理的拒绝错误:完整性检查失败";,但是当我删除package-lock.json时,错误消失了,node.js,npm,Node.js,Npm,我有一个在GIT repo中进行版本控制的nodejs项目。当我克隆项目时,会包含package-lock.json(应该是这样),但当我执行“npm安装”时,会出现错误未处理的拒绝错误:完整性检查失败 如果我删除package-lock.json,一切都会正常运行 节点版本:8.14.0 npm版本:6.5.0 Package.json: "dependencies": { "aws-sdk": "^2.258.1", "localmodule": "file:../Loc
未处理的拒绝错误:完整性检查失败
如果我删除package-lock.json,一切都会正常运行
- 节点版本:8.14.0
- npm版本:6.5.0
Package.json:
"dependencies": {
"aws-sdk": "^2.258.1",
"localmodule": "file:../LocalModule/dist/localmodule-1.1.1.tgz"
},
"devDependencies": {
"@types/chai": "^4.1.4",
"@types/mocha": "^5.2.2",
"@types/node": "^10.3.2",
"@types/sinon": "^5.0.1",
"aws-sdk-mock": "^2.0.0",
"chai": "^4.1.2",
"merge2": "^1.2.2",
"mocha": "^5.2.0",
"nps": "^5.9.2",
"nps-utils": "^1.6.0",
"sinon": "^5.0.10",
"sinon-chai": "^3.1.0",
"ts-node": "^6.1.1",
"typescript": "^3.1.6"
}
完全错误:
Unhandled rejection Error: Integrity check failed:from@0.1.7 extracted to /home/...
Wanted: sha512-atI2DklW/phzBW2RyPznpbepvl1aRh7Y0XHfguqv...
Found: sha512-9BeJ7UP5OY9cUDsNXlHaYL6Xqd1cARifioOEtF60...
at checksumError (/usr/lib/node_modules/npm/node_modules/cacache/lib/content/write.js:157:13)
at write (/usr/lib/node_modules/npm/node_modules/cacache/lib/content/write.js:35:22)
at putData (/usr/lib/node_modules/npm/node_modules/cacache/put.js:29:10)
at Object.x.put (/usr/lib/node_modules/npm/node_modules/cacache/locales/en.js:28:37)
at readFileAsync.then.data (/usr/lib/node_modules/npm/node_modules/pacote/lib/fetchers/file.js:38:28)
at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:694:18)
at Promise._fulfill (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
at /usr/lib/node_modules/npm/node_modules/bluebird/js/release/nodeback.js:42:21
at /usr/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:90:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
导致问题的包是我的本地模块。我有另一个项目,我总是用相同的名称“localmodule-1.1.1.tgz”打包模块。
此模块的校验和存储在package-lock.json中。
当我更改模块的内容而不是名称时,npm检测到我正在尝试安装相同的模块,但校验和不匹配。要添加到OP的答案中,我的错误是客户端生成的专用npm包,我首先必须使用npm I
重新安装。重新安装后,我能够运行npm I
并成功更新所有其他软件包。尝试npm缓存验证
或npm缓存--force clean
。然后尝试npm安装
。它对我很有用。今天也有同样的问题,并出现在这个页面上。上面的东西对我不起作用,但过了一段时间,通过做一些小工作来修复它。因此发布它。可能对其他人有帮助
只需删除“package lock.json”文件并执行npm安装…:) 这种情况一直发生吗?你知道是哪个模块导致了问题吗?它一直在发生。我不知道是否有模块导致了问题。在其他情况下,它似乎是一个特定版本的npm错误。但是我已经更新了它,问题仍然存在。那么哪个包被sha签名锁定了?基本上它保存了npm模块的sha校验和-以确保文件没有被修改或损坏。这不是一种致命的疾病,但我相信它会让人恼火。它也可能是一个坏的npm模块。要查看它修复了什么,请尝试对文件执行git diff
,查看它更改了什么。导致问题的包是我的本地模块。我有另一个项目,我总是用相同的名称“localmodule-1.1.1.tgz”打包模块。我知道,如果包的内容发生了更改,但名称和版本都没有更改,npm会意识到我尝试安装的包与以前安装的包不匹配(查看package lock.json)。这有道理吗?谢谢