Heroku无法运行节点ES6代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Heroku无法运行节点ES6代码相关的知识,希望对你有一定的参考价值。

我有一个用express-generator生成的快速应用程序,并已添加到babel中将所有内容转换为bin文件。

我还加入了我的package.json

"engines": {
  "node": ">= v8.9.0"
 }

确保它运行与我的本地环境相同的节点版本。

出于某种原因,只要我添加了使用es6类语法的服务,该应用就无法运行:

export default class GifService {}

我在日志中遇到的唯一错误是

2018-01-21T16:13:48.175448 + 00:00 heroku [router]:at = error code = H10 desc =“App crashed”method = GET path =“/”host = gentle-depths-57675.herokuapp.com request_id = a4c00cb7-5071-4883-a730-6355409d6aa2 fwd =“86.28.187.108”dyno = connect = service = status = 503 bytes = protocol = https

这没什么帮助。

当我使用async/await时,我也遇到了同样的问题。以前有人遇到过这个吗?

谢谢

答案

看起来这是我的babel预设的一个问题。

我试图用一堆插件转换到第二阶段

老.babelrc

{
  "presets": [
    "es2015",
    "stage-2"
  ],
  "plugins": [
    "transform-runtime",
    "syntax-async-functions",
    "transform-regenerator"
  ]
}

我猜这是Heroku不支持的。

我已经将我的babel预设更改为以下内容:

新的.babelrc

{
  "presets": [
    ["env", {
      "targets": {
        "node": "current"
      }
    }]
  ]
}

以上是关于Heroku无法运行节点ES6代码的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Maven 构建应用程序,我可以在本地运行代码,但无法在 heroku 上部署

如何使节点调度在 Heroku 中工作?

heroku 节点服务器不会运行

如何将访问代码从 gmail api 传递给 Heroku 中的节点工作者

Heroku 应用程序没有使用正确的节点模块

无法使用 sequelize 从本地节点应用程序连接到 heroku postgresql 数据库