【发布时间】:2020-06-29 05:53:36
【问题描述】:
我在 Heroku 上部署了一个应用程序,直到昨天我都没有遇到重新部署它的问题。
我必须升级 package-lock.json/yarn.lock 文件中的一个依赖项,在尝试将其上传到 Heroku 时,我得到以下信息:
Node.js app detected
remote:
remote: -----> Creating runtime environment
remote:
remote: NPM_CONFIG_LOGLEVEL=error
remote: NODE_ENV=production
remote: NODE_MODULES_CACHE=true
remote: NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote: engines.node (package.json): 10.15.x
remote: engines.npm (package.json): 6.14.x
remote:
remote: Resolving node version 10.15.x...
remote: Downloading and installing node 10.15.3...
remote: Bootstrapping npm 6.14.x (replacing 6.4.1)...
remote: npm 6.14.x installed
remote:
remote: -----> Installing dependencies
remote: Installing node modules (package.json + package-lock)
remote: npm ERR! code EINTEGRITY
remote: npm ERR! sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= integrity checksum failed when using sha1: wanted sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= but got sha512-rIqbOrKb8GJmx/5bc2M0QchhUouMXSpd1RTclXsB41JdL+VtnojfaJR+h7F9k18/4kHUsBFgk80Uk+q569vjPA== sha1-sAoAIwoRCMSMFp5popGq/aOqzWM=. (7897 bytes)
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR! /tmp/npmcache.P3BnU/_logs/2020-03-18T06_17_36_985Z-debug.log
remote:
remote: -----> Build failed
remote:
remote: We're sorry this build is failing! You can troubleshoot common issues here:
remote: https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:
remote: If you're stuck, please submit a ticket so we can help:
remote: https://help.heroku.com/
remote:
remote: Love,
remote: Heroku
remote:
remote: ! Push rejected, failed to compile Node.js app.
remote:
remote: ! Push failed
我意识到问题出在这一行:
npm 错误!代码完整性 远程:npm 错误!使用SHA1当SHA1-HX / Kv8M5fSYluCKCYuhqp6ARsF0 =完整性校验失败:想SHA1-HX / Kv8M5fSYluCKCYuhqp6ARsF0 =却得到了SHA512-rIqbOrKb8GJmx / 5bc2M0QchhUouMXSpd1RTclXsB41JdL + VtnojfaJR + h7F9k18 / 4kHUsBFgk80Uk + q569vjPA == SHA1-sAoAIwoRCMSMFp5popGq / aOqzWM =。 (7897 字节)
但我不知道它为什么现在发生或触发它的原因(因为它以前没有发生过)。
我已经尝试在线搜索和clearing the cache,阅读Heroku's Node.js Troubleshooting,在我的 package.json 文件中添加一个引擎密钥来指定 node/npm 版本,但没有任何效果。
我没有在我的开发环境中升级了 Node/NPM,所以这些版本是相同的。
【问题讨论】:
-
git rm package-lock.json提交并重试。问题可能是有人在相同版本下重新发布了他们的库并生成了新的哈希。该哈希将不再匹配。 -
@TinNguyen - 我读到删除 package-lock.json 只是一个修复,但不是解决方案,因为我需要再次将它添加到我的项目中。
-
您可以打开您的 package-lock.json 并查找有问题的 sha512 值。但不建议手动编辑。再次重新安装有问题的包,你应该有正确的哈希值。
-
@TinNguyen - 我卸载并重新安装了依赖项。那成功了。谢谢