Q: 如果面试官问你 Babel 是干什么的?有哪些核心功能?
Babel 是一个 JavaScript 语法转换器。它主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JS 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。
=>, Classes, Destructuring) 为低版本语法 (var, function, prototype)。React.createElement。@babel/polyfill 或 core-js,为目标环境添加缺失的原生 API (Promise, Set, Map, Symbol) 和实例方法 (Array.from)。babel-plugin-macros。允许在编译阶段运行代码,生成转换后的源码。如 codegen.macro 可以在构建时读取文件生成配置。babel-minify (虽然不如 Terser 常用)。不仅仅是。Babel 强大的 Plugin 系统 赋予了它无限的扩展能力。
babel-plugin-transform-imports 可以按需引入模块。<template> 编译为 render 函数。styled-components 的 Babel 插件可以在编译时生成哈希类名。