babel 原理一:babel 包的构成

爱⌒轻易说出口 提交于 2020-01-14 01:04:40

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 中,因为它不会污染全局作用域

工具包

babel-cli: babel 的命令行工具,通过命令行对 js 代码进行转译

babel-register: 通过绑定 node.js 的 require 来自动转译 require 引用的 js 代码文件

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!