Babel 8 转向发布候选版本;最后的 Babel 7 小版本发布 (2026年1月31日)

工具BabelJavaScript

总结

在 2026 年 1 月 31 日,Babel 团队发布了 7.29.0(标记为 Babel 7 系列的最后一个小版本),并同时发布了 Babel 8.0.0-rc.1——Babel 8 的第一个发布候选版本。该 RC 确定了一组旨在消除长期技术债务的重大变更(特别是将 Babel 8 作为 ESM-only 发布),并包括迁移资源,以帮助插件作者和构建工具集成者安全升级。 (babeljs.io)

为什么这对全栈团队很重要

  • Babel 仍然是现代 JavaScript/TypeScript 构建管道的核心组成部分。稳定的 Babel 8(ESM-only)改变了工具、插件和服务器端集成的发布和消费方式。
  • ESM-only 打包影响任何通过 CommonJS require() 调用 Babel 包的消费者;导入 Babel 内部(用于转换、插件或自定义构建步骤)的构建时和运行时代码需要迁移到 ESM 导入或使用互操作 shim。
  • 插件和预设作者必须发布与 ESM 兼容的包,并验证其 API 与 Babel 8 RC 的兼容性。固定版本或依赖 CommonJS 工件的 CI 管道在迁移期间需要调整。
  • Babel 博客强调了独立分发的特定构建工具改进(@babel/standalone 的 data-target 属性)和异步 API,以更好地集成浏览器内的转译和工具流。这些可以简化一些开发服务器和浏览器内的转换,但也需要更新调用者。 (babeljs.io)

需要了解的关键变更(实用视角)

  • Babel 8 是 ESM-only:核心包将以 ESM 形式发布,默认不提供 CommonJS 构建输出。预计支持导入风格的使用和现代模块解析。 (babeljs.io)
  • 迁移资源:Babel 团队发布了迁移指南和 Babel 8 的文档网站(托管在“next”文档域上),并提供了 codemods / 指导以简化过渡。在升级构建镜像或 CI 运行器之前,请阅读这些内容。 (babeljs.io)
  • @babel/standalone 更新:新的 data-target 属性允许在 HTML 脚本标签中指定转译目标;@babel/core 现在暴露一个可在基于浏览器的工具场景中使用的异步 API——对实时编码工具和嵌入式编辑器非常有用。 (babeljs.io)
  • 最后一个 Babel 7 小版本:7.29.0 被发布为 7.x 系列的最后一个小版本;必须避免重大变更的团队可以继续使用 7.x 分支,同时计划迁移。Babel 团队明确将此定位为 8.x 基线之前的最后一次小步发布。 (babeljs.io)

工程团队的立即检查清单(推荐,优先级)

  1. 清单

    • 找到任何直接运行时或构建时导入的 @babel/* 包(包括插件、预设内部、转译包装器)。
    • 确定调用 require('@babel/core') 或依赖 CommonJS 互操作的 Babel 内部代码。
  2. 使用 RC 测试(在分支/分叉和 CI 中)

    • 添加一个作业,安装 8.0.0-rc.1 并运行完整构建和测试套件。
    • 检查服务器端运行时和构建镜像(Node 版本、打包器配置)在 CI 容器中对 ESM 的支持。
  3. 更新插件库和内部工具

    • 对于开源或内部 Babel 插件/预设,发布 ESM 入口点并验证示例。
    • 如果一个包必须保持 CommonJS,添加显式的互操作 shim 或小的兼容包装器(仅限短期)。
  4. 调整 CI 和运行时镜像

    • 确保 CI 中使用的 Node 镜像和工具链支持您计划采用的 ESM 模式(导入语法,package.json "type": "module" 或兼容加载器)。
    • 在验证 RC 在暂存环境中的表现之前,将 Babel 7.x 固定在紧急生产渠道中。
  5. 沟通和安排

    • 协调下游消费者的升级(前端、SSR、服务器工具)。
    • 为插件作者和基础设施分配时间以测试和发布修复;预计在 RC 周期初会有少量不兼容的生态系统组件。

风险和迁移说明

  • 大多数主要打包工具和框架一直在为 ESM 优先的生态系统做准备;然而,较小或较旧的内部工具可能会出现问题。尽早测试并优先考虑高流量管道(CD、SSR 构建)。
  • 由于 Babel 在早期的 7.x 版本中引入了许多重大变更,因此团队试图减少冲击——不过,仍然要预期 API 表面的小差异和需要以 ESM 格式重新发布。请使用提供的迁移指南和可用的 codemods。 (babeljs.io)

结论

Babel 8 达到 RC1 是一个重大的工具里程碑:它完成了朝向 ESM 优先生态系统的长期计划清理,并为插件作者、打包工具和全栈团队开启了实际的迁移窗口。将 RC 视为一个真实的测试目标:在 CI 中运行它,尽早升级关键插件,并在验证构建和服务器环境的性能和兼容性之前,保持一个固定的 Babel 7.x 通道用于生产。 (babeljs.io)

来源:Babel 博客 — 7.29.0(最后一个 Babel 7 小版本)和 Babel 8.0.0-rc.1(2026年1月31日)。 (babeljs.io)

来源

继续阅读