babel的原理及其使用

写代码的时候会使用es6或者es7的代码,直接运行,某些代码浏览器不识别,这时候可是使用babel进行转译成 es5或者es3的代码

babel包的构成

核心包

  • babel-core: bable转译器本身,提供了babel的转译的API,如babel.transform等,用于对代码进行转译。wepack的babel的babel-loader就是调用这些API来完成转译的。
  • babylon : js的词法解析器。
    -babel-traverse : 用于对AST(abstract syntax tree)抽象语法树的遍历,主要是给plugin用
  • babel-generator : 根据AST生成 代码
    其中转译过程主要分为三个阶段: parsing transforming generating
    具体过程如下:以es6转es5为例

es6代码的输入---》babelon进行解析---》得到AST--》plugin用babel-traverse对AST树进行遍历 ---》得到新的AST树 ---》使用babel-genertor通过AST树生成es5代码。

你可能感兴趣的:(babel的原理及其使用)