Heroku 最近开始在 Webpack 构建期间给出部署错误“npm ERR!code ELIFECYCLE”

Posted

技术标签:

【中文标题】Heroku 最近开始在 Webpack 构建期间给出部署错误“npm ERR!code ELIFECYCLE”【英文标题】:Heroku recently started giving deploy error "npm ERR! code ELIFECYCLE" during Webpack build 【发布时间】:2020-04-06 05:35:44 【问题描述】:

我们的部署代码没有改变,我们的 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% 呢?有其他人见过这种情况吗?

【问题讨论】:

【参考方案1】:

原来我们没有完整阅读日志。中间有错误,最后没有出现。我们不得不在原始日志文件中搜索“error”这个词。

例如:

ModuleNotFoundError: Module not found: Error: Can't resolve 'dns' in '/tmp/build_e65fff75f8ffc7b45670e320e578bd35/frontend/node_modules/mongodb/lib/core'

解决方案涉及几个步骤:

    安装一些模块(即 npm install x)

    将此块添加到 Webpack 配置中:

    节点: fs:'空', 净:'空', tls:'空', dns:“空”

    停止使用 .gitlab-ci.yml 文件中的 ruby​​ 图像:

【讨论】:

以上是关于Heroku 最近开始在 Webpack 构建期间给出部署错误“npm ERR!code ELIFECYCLE”的主要内容,如果未能解决你的问题,请参考以下文章

安装后 webpack 无法在 Heroku 上运行

如何将使用 Webpack 的节点部署到 heroku

Heroku - git push/deployment 期间出错,此代码的相同版本已经构建

在 Heroku 上部署 AngularJs + webpack + gulp

如何使用 Webpack Encore 在 Heroku 上编译资产?

Vue.cli 修改 webpack 以在构建期间不嵌入 json 文件?