Javascript 修改后是否可以将巴比伦解析的AST转换回源代码?
我试图通过以下方式修改JavaScript源代码:Javascript 修改后是否可以将巴比伦解析的AST转换回源代码?,javascript,babeljs,abstract-syntax-tree,babel-babylon,Javascript,Babeljs,Abstract Syntax Tree,Babel Babylon,我试图通过以下方式修改JavaScript源代码: 使用解析源代码并获取AST 使用遍历AST,并在需要时进行一些修改 将AST返回到JavaScript源代码 前两个步骤相当简单。但我还是坚持回到源代码上来 我做了一些搜索,只找到了将AST转换为较低版本JavaScript代码的示例 有什么建议吗?这不是每个传输程序都使用的过程吗?@Bergi,我试图将AST转换回其原始形式(ES2015 synatx),而不是将其转换成旧的SYNTAX,这意味着将AST转换回代码的过程在任何地方都是一样的。
有什么建议吗?这不是每个传输程序都使用的过程吗?@Bergi,我试图将AST转换回其原始形式(ES2015 synatx),而不是将其转换成旧的SYNTAX,这意味着将AST转换回代码的过程在任何地方都是一样的。它是否可以传输到不同的JS版本,这取决于第2步中所做的修改。(好吧,你甚至可以不做任何转换就运行Babel)。你发现的例子是如何做到这一点的?你能链接它们吗?@Bergi,正如你所说,如果我不提供任何插件
babylon.parse
,修改AST后,babel generate会将AST返回到我想要的,对吗?(因为没有插件进行转换)。下面是链接:是的,一般来说,生成(解析(代码))==code
(身份转换)。或者,根据那篇文章,babel.transform(code,{plugins:[]}).out==code
。