【问题标题】:How to transform ES6 AST into ES5 AST directly?如何将 ES6 AST 直接转化为 ES5 AST?
【发布时间】:2015-03-30 13:05:12
【问题描述】:

我了解到像 Babel 这样的包可以在 ES5 中完成将 ES6 代码转换为 JavaScript 的工作,但是我可以从我得到的 ES6 AST 开始吗?

【问题讨论】:

  • 那么,你有一个 ES6 AST,你想用它创建一个 ES5 AST?
  • @bali182 是的。该 ES6 AST 是从其他工具生成的。直接输出JavaScript也可以。
  • 但是你为什么不根本不解析 ES6 代码,让例如 Babel 将其直接转换为 ES5 代码呢?此外,如果您找到将 AST 转换为其他东西的工具,则它需要 AST 采用特定格式,并且您将不得不进行一些讨厌的转换(很可能)
  • @bali182 是的。它实际上是一种 AltJS 语言,我想如果我生成 ES6 AST 并让 babel 或任何将 AST 转换为 ES5 JavaScript 的东西可能会很有趣。

标签: abstract-syntax-tree ecmascript-6 babeljs


【解决方案1】:

我在 babel 的 Issues 中发布了一个类似的问题,并从维护者那里得到了 anwser:

https://github.com/babel/babel/issues/1122

require("babel").transform.fromAST(ast, originalCode, options);

变量originalCode 可以是null,这将完成这项任务。

【讨论】:

猜你喜欢
  • 2021-11-28
  • 2013-11-27
  • 1970-01-01
  • 2014-08-30
  • 2018-12-28
  • 2011-02-11
  • 1970-01-01
  • 2017-07-13
  • 1970-01-01
相关资源
最近更新 更多