# ❓ ES6 代码转成 ES5 代码的实现思路是什么
参考 Babel 转换实现方式
Babel 是如何把 ES6 转成 ES5 呢,其大致分为三步:
- 将代码字符串解析成抽象语法树,即所谓的 AST
- 对 AST 进行处理,在这个阶段可以对 ES6 代码进行相应转换,即转成 ES5 代码
- 根据处理后的 AST 再生成代码字符串
可以使用@babel/parser
的parse
方法,将代码字符串解析成 AST;使用@babel/core
的transformFromAstSync
方法,对 AST 进行处理,将其转成 ES5 并生成相应的代码字符串;过程中,可能还需要使用 @babel/traverse
来获取依赖文件等。