【发布时间】:2018-01-21 16:20:21
【问题描述】:
我有一个使用 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[路由器]: at=error code=H10 desc="应用程序崩溃" 方法=GET 路径="/" 主机=温柔深度-57675.herokuapp.com request_id=a4c00cb7-5071-4883-a730-6355409d6aa2 fwd="86.28.187.108" dyno=连接=服务=状态=503字节=协议=https
这没什么帮助。
当我使用async/await 时,我也遇到了同样的问题。有人遇到过这种情况吗?
谢谢
【问题讨论】:
-
我应该注意到我有一个带有以下
web: node bin/app.js的 procfile,它告诉 heroku 从 bin / transpiled 文件运行我的应用程序 -
很难根据关于您项目的如此薄弱的信息来判断...您是否知道 Heroku 默认不会安装您的 devDependencies?为了强制您需要在 ENV 变量中设置 NPM_CONFIG_PRODUCTION=false。
-
是的,我知道这一点。我实际上是在本地运行构建,并且所有都从
bin/app.js在本地运行。然后我将整个项目部署到heroku,如前所述,我的procfile 指定从bin/app.js运行 -
与本地设置相比,部署到 heroku 时肯定存在差异。我会尝试将日志放在服务器代码中并通过 ssh 连接到测功机,看看是否能提供更多线索:devcenter.heroku.com/changelog-items/1112
-
@PhilippeLeefsma 这些差异是我想要深入了解的。我在同一个节点版本中运行完全相同的转译代码。还有什么可以不同的?至于日志,我已经这样做了。我已将代码剥离为基础。只有当我放入 es6 类或 async / await 语法时,它才会中断并显示我在原始帖子中发布的错误。
标签: javascript node.js heroku