我想在一个大/复杂的nodejs app中使用babel运行时。我不想使用babel需要钩子,因为应用程序很大,当我尝试使用它时,我收到以下错误:
RangeError: Maximum call stack size exceeded
我只想转发一些JS文件,至少目前是这样。
babel docs对运行时支持有点神秘。安装babel-runtime后,他们提供:
require("babel").transform("code", { optional: ["runtime"] });
该代码包含在哪里? “代码”真的只是一个字符串吗?我试图将它添加到我的主app.js文件(快递3应用程序)。不幸的是,这不起作用。
答案 0 :(得分:0)
我无法完全理解你的问题,但我想我可以回答其中的一部分。
正如babel api中所解释的那样,transform()
函数接受一个应该是要编译的源代码的字符串,并返回一个包含三个属性的对象:
code
生成的代码map
代码的源地图ast
语法树这意味着,如果您想在文件夹中转换代码,对于要转换的每个文件,您应该使用fs
实用程序读取该文件,将其提供给transform()
函数,然后编写返回的对象中code
属性的值到输出文件夹。
为简化阅读文件的步骤,您可以使用babel提供的函数transformFile
。
至于你用快递应用提到的问题,除非你提供更多信息,否则我无能为力。