node.js - Heroku 最近开始在 Webpack 构建期间给出部署错误“npm ERR!code ELIFECYCLE”
问题描述
我们的部署代码没有改变,我们的 Webpack 版本(“webpack”:“^4.41.0”)没有改变,并且部署仍然可以成功地用于其他(非 Heroku)服务器。
然而,就在几天前,Heroku deploy 停止处理这个错误:
2878 <s> [webpack.Progress] 70% building 4114/4114 modules 0 active
2879 npm ERR! code ELIFECYCLE
2880 npm ERR! errno 1
2881 npm ERR! client@0.1.0 build-heroku: 'npm run clean && webpack --progress --bail --env dist -p'
2882 npm ERR! Exit status 1
2883 npm ERR!
2884 npm ERR! Failed at the client@0.1.0 build-heroku script.
我们的 /package.json 有:
"heroku-postbuild": "cd frontend && npm install --only=dev && npm install && npm run build"
我们的 /frontend/package.json 有:
“脚本”:{
"clean": "rimraf dist/*",
"build": "npm run clean && webpack --progress --bail --env dist -p && rm -r prod 2>/dev/null || : && mv dist prod"
}
那么为什么现在 Heroku 中的 Webpack 构建只达到 70% 呢?有没有其他人看到这种情况发生?
解决方案
原来我们没有完整阅读日志。中间有错误,最后没有出现。我们不得不在原始日志文件中搜索“ error ”这个词。
例如:
ModuleNotFoundError: Module not found: Error: Can't resolve 'dns' in '/tmp/build_e65fff75f8ffc7b45670e320e578bd35/frontend/node_modules/mongodb/lib/core'
该解决方案涉及几个步骤:
推荐阅读
- javascript - 使用nodejs检查存储在mongodb中的数组中某个值的数量
- python - 使用 matplotlib pgf 后端更改字体粗细
- javascript - 选中的单选选项从一个滑动到另一个(vanilla js)
- ruby-on-rails - Rails 模型 - before_read 或类似的,允许您在访问数据之前运行方法
- events - 未触发工作表事件
- python - 我的 DNA 序列匹配器程序输出错误
- python - 在我的工作表(excel)中,我有 2 列需要计算行数。我需要依靠使用熊猫的pycharm。我怎样才能做到这一点?
- wordpress - wordpress front-page.php 未正确加载 css
- sql - 有没有办法在 SQL 中使用子查询创建临时表?
- tensorflow - 如何解决张量流中不推荐使用的特征列警告