如何使用大型nodejs / express app的babel运行时

时间:2015-08-05 23:28:13

标签: node.js ecmascript-6 babeljs

我想在一个大/复杂的nodejs app中使用babel运行时。我不想使用babel需要钩子,因为应用程序很大,当我尝试使用它时,我收到以下错误:

RangeError: Maximum call stack size exceeded

我只想转发一些JS文件,至少目前是这样。

babel docs对运行时支持有点神秘。安装babel-runtime后,他们提供:

require("babel").transform("code", { optional: ["runtime"] });

该代码包含在哪里? “代码”真的只是一个字符串吗?我试图将它添加到我的主app.js文件(快递3应用程序)。不幸的是,这不起作用。

1 个答案:

答案 0 :(得分:0)

我无法完全理解你的问题,但我想我可以回答其中的一部分。

正如babel api中所解释的那样,transform()函数接受一个应该是要编译的源代码的字符串,并返回一个包含三个属性的对象:

  • code生成的代码
  • map代码的源地图
  • ast语法树

这意味着,如果您想在文件夹中转换代码,对于要转换的每个文件,您应该使用fs实用程序读取该文件,将其提供给transform()函数,然后编写返回的对象中code属性的值到输出文件夹。

为简化阅读文件的步骤,您可以使用babel提供的函数transformFile

至于你用快递应用提到的问题,除非你提供更多信息,否则我无能为力。