文章目录
babel 的包的构成
核心包
babel-core: babel 转译器本身,提供了 babal 的转译 API,如 babel.transform 等,用于对代码进行转译
babylon: js 的词法解析器(babel 7.x 重命名为 @babel/parser)
babel-traverse: 用于对 AST 的遍历,主要给 plugin 用
babel-generator: 根据 AST 生成代码
功能包
babel-types: 用于检验、构建和改变 AST 树的节点
babel-template: 辅助函数,用于从字符串形式的代码来构建 AST 树节点
babel-helpers: 一系列预制的 babel-template 函数,用于提供给一些 plugins 使用
babel-core-frames: 用于生成错误信息,打印出错误点源代码帧以及指出出错位置
babel-plugin-xxx
: babel 转译过程中使用到的插件,其中 babel-plugin-transform-xxx 是 transform 步骤使用的
babel-preset-xxx
: transform 阶段使用到的一系列的 plugin
babel-polyfill
: JS 标准新增的原生对象和 API 的 shim,实现上仅仅是 core-js 和 regenerator-runtime 两个包的封装
babel-runtime
: 功能类似 babel-polyfill,一般用于 library 或 plugin 中