Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。 下面列出的是 Babel 能为你做的事情:

  • 语法转换
  • 通过 Polyfill 方式在目标环境中添加缺失的特性 (通过 @babel/polyfill 模块)
  • 源码转换 (codemods)
  • 更多! (查看这些 视频 获得启发)

Babel官方文档
Babel中文文档
babel编译过程的了解
Babel在线编译工具
AST在线转换工具
对于Babel是什么?能做什么?不能做什么?最好的阐明文档

概念认识

image.png

  1. 什么是preset(预设),比如preset-env?

    预设就是一系列插件的集合,你也可以根据自己所需要的插件组合成一个预设
    image.png

  2. 什么是@babel/polyfill,他是干嘛用的?

    @babel/polyfill 模块包含 core-js 和一个自定义的 regenerator runtime 来模拟完整的 ES2015+ 环境。所以可以很肯定的说@babel/polyfill就是用来模拟所有新的javascript功能的

  3. @babel/core是什么,干什么用的?

    其实@babel/core里面继承了一系列的用户语法分析的API,包括源码读取,解析,ast节点遍历、查找、删除、增加、替换等功能.
    image.png