babel.config.jsBabel 配置文件,用于定义 JavaScript 代码转换规则。它的主要作用包括:

    1. 语法转换
      将 ES6+(如箭头函数、解构赋值、async/await)等现代 JS 语法转换为向后兼容的版本,确保在旧版浏览器或 Node.js 环境中正常运行。

    2. Polyfill 补丁
      配合 @babel/preset-envcore-js,自动按需引入缺失的 API(如 PromiseArray.includes),填补运行环境不支持的新特性。

    3. 插件与预设管理

      • Presets(预设):一组预先配置好的插件集合,例如 @babel/preset-env(按目标环境自动选插件)、@babel/preset-react(处理 JSX)。
      • Plugins(插件):单独添加特定转换功能,比如 @babel/plugin-transform-runtime(优化辅助代码复用)。
    4. 按需编译
      通过 include/exclude 字段指定哪些文件需要编译(通常排除 node_modules),提升构建效率。

    5. 环境适配
      利用 env 选项为不同环境(开发/生产)设置差异化配置,例如开发环境保留 console.log,生产环境移除。

    示例

    module.exports = {
      presets: [
        ['@babel/preset-env', { 
          targets: "> 0.25%, not dead", // 目标浏览器份额 > 0.25%
          useBuiltIns: "usage",          // 按需引入 polyfill
          corejs: 3
        }]
      ],
      plugins: ["@babel/plugin-transform-runtime"]
    };

    简单说,它就像一道“翻译桥梁”,让开发者写新潮语法,同时保证代码在老旧环境下也能跑起来。