介绍
如果我们需要在js
中对js代码
进行修改的时候,@babel/core
是个全能的选项。
在@babel/core
中,已经集成了
ast
树构建(parse)
ast
树遍历和改造(traverse)
ast
节点类型和创建(types)
ast
输出代码(transfromFromAst)
等等几个常用功能,并以插件模式来实现业务逻辑解耦。
除此之外,@babel/generator
是个单独的ast
代码生成工具。它与transfromFromAst
不同的是:
除了@babel/core
,还有个轻量级的选项是acorn
,而且babel的AST解析部分也是用的acorn
。
体积更小的acorn
,压缩后在80kb左右,可以在web中使用;但功能也相对单一,仅能实现ast
解析。对ast
树的遍历需要单独实现,修改则是直接操作ast
树。
更多内容可以阅读:
扩展阅读