【问题标题】:Node Application Heroku Application Error节点应用程序 Heroku 应用程序错误
【发布时间】:2017-09-10 12:36:03
【问题描述】:

我正在使用heroku/nodejs 构建包。

这就是我在 package.json 中的脚本的样子:

"scripts": {
  "build": "webpack --config webpack.prod.js",
  "server": "http-server public -p 3000 -a localhost -c 0",
  "prod": "npm run build && npm run server",
  "dev": "webpack-dev-server --config webpack.dev.js",
  "lint": "eslint . --fix"
},

在 procfile 我只有一行代码:

web: npm run prod

任何想法为什么我看到应用程序错误?

【问题讨论】:

  • 我想我们需要更多信息。尝试从 heroku cli 运行“heroku logs --tail”。我找到的这个网站可能会有所帮助:kb.heroku.com/why-am-i-seeing-application-error
  • 您需要在“服务器”脚本中使用 Heroku 的 $PORT 环境,而不是 3000 端口。
  • 如果您发布“服务器”命令应该很简单http-server 我会接受您的回答。不过,我花了一些谷歌搜索和调试。 heroku 显然也没有安装开发依赖项。

标签: node.js reactjs heroku webpack


【解决方案1】:

关于错误,我认为您应该使用环境变量 $PORThttp-server public -p $PORT -c 0 确保您的部门中有 http-server 而不是您的 devDeps。

这可能不会导致错误,但您不应该在运行时进行构建。而是将构建步骤添加到 postinstall NPM 脚本中,如下所示。

"scripts": { "build": "webpack --config webpack.prod.js", "postinstall": "npm run build", "server": "http-server public -p $PORT -c 0", "prod": "npm run server", "dev": "webpack-dev-server --config webpack.dev.js", "lint": "eslint . --fix" },

这将确保您的构建在部署时运行,而不是在每次节点进程启动时运行。

【讨论】:

  • 仅供参考,如果您有 npm run start,则不需要 procfile,我只需将 prod 重命名为 start 并删除 procfile
猜你喜欢
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 2019-01-12
  • 2015-06-17
  • 2017-04-20
  • 1970-01-01
  • 2020-07-31
  • 2013-08-25
相关资源
最近更新 更多