原理
JavaScript 代码。Babel 的底层实现主要包括三个步骤:解析(parsing)、转换(transforming)和生成(generating)。
-
解析(Parsing):将代码解析为抽象语法树(AST)的过程。Babel 采用了 @babel/parser 作为解析器,将 JavaScript 代码转换为 AST。(包括词法解析,语法解析)
-
转换(Transforming):对 AST 进行遍历,对特定节点进行转换的过程。Babel 采用了 @babel/traverse 模块进行 AST 的遍历和转换,它可以方便地对 AST 进行增删改查操作。 (babel 插件降级处理在这一步起作用,按规则增删改节点)
-
生成(Generating):将转换后的 AST 重新生成 JavaScript 代码的过程。Babel 采用了 @babel/generator 模块,将转换后的 AST 重新生成为 JavaScript 代码。