Babel 编译工具

JavaScript 编译器,将 ES6+ 代码转换为兼容旧版本的语法

问题

Babel 是什么?它的作用是什么?

解答

Babel 是一个 JavaScript 编译器,主要用于将 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,使代码能够运行在当前和旧版本的浏览器或其他环境中。

基本使用

// 输入:ES6+ 代码
const greeting = (name) => `Hello, ${name}!`;
const numbers = [1, 2, 3].map(n => n * 2);

// 输出:ES5 兼容代码
var greeting = function greeting(name) {
  return "Hello, " + name + "!";
};
var numbers = [1, 2, 3].map(function (n) {
  return n * 2;
});

配置示例

// babel.config.js
module.exports = {
  presets: [
    ['@babel/preset-env', {
      targets: {
        browsers: ['> 1%', 'last 2 versions']
      }
    }]
  ]
};

关键点

  • Babel 是 JavaScript 编译工具链,不是运行时库
  • 主要功能是语法转换,将新语法转为旧语法
  • 通过插件和预设(presets)配置转换规则
  • 常用于构建工具(Webpack、Rollup)中
  • 需要配合 polyfill 处理新 API 的兼容性