将ES6 Node Js部署到Heroku时出错

时间:2019-08-16 13:23:54

标签: node.js reactjs express heroku babel

我有一个带有graphql的快递服务器,并作为前端进行响应。我正在使用babel-node运行我的server.js,并使用webpack捆绑我的模块。我想使用Heroku部署我的应用程序,并且我已经读到不建议将babel-node用于生产环境,并且应该使用编译器将ES6转换为ES5。我继续进行在线研究,找到了一种使用babel将所有服务器文件转换为ES6的方法。

我的脚本

a busy cat

这基本上会创建一个名为“ build”的文件夹,并在其中转储我所有的服务器文件。当我输入纱线开始

时,它可以工作

我也将前端连接到服务器,以便它们使用相同的端口。

a busy cat

Procfile

web: node build/server.js

基本上,我为Heroku创建了2个其他文件夹。

/build
/dist

一个用于我的服务器文件,另一个用于响应。

当我在本地http://localhost:5000上运行它们时,一切运行正常。但是当我推送到heroku时,会出现这些错误。

a busy cat

似乎它没有读取我的已编译文件,并且我不知道发生了什么。对我来说很好。

当我打开heroku应用程序时,它显示应用程序错误,并且在控制台中显示错误。

a busy cat

2 个答案:

答案 0 :(得分:0)

这是因为:

  1. 当前要使纯ES6正常工作,您必须从“ --experimental-modules”开始节点
  2. 您的文件必须从.js重命名为.mjs
  3. 检查节点版本是否支持ES6

您确定您的Babel步骤是否正确转码了?

答案 1 :(得分:0)

您已经安装了Express吗?您可以尝试以下方法:

npm install express