Babel 8 转向发布候选版本;最后的 Babel 7 小版本发布 (2026年1月31日)
总结
在 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)
工程团队的立即检查清单(推荐,优先级)
-
清单
- 找到任何直接运行时或构建时导入的 @babel/* 包(包括插件、预设内部、转译包装器)。
- 确定调用 require('@babel/core') 或依赖 CommonJS 互操作的 Babel 内部代码。
-
使用 RC 测试(在分支/分叉和 CI 中)
- 添加一个作业,安装 8.0.0-rc.1 并运行完整构建和测试套件。
- 检查服务器端运行时和构建镜像(Node 版本、打包器配置)在 CI 容器中对 ESM 的支持。
-
更新插件库和内部工具
- 对于开源或内部 Babel 插件/预设,发布 ESM 入口点并验证示例。
- 如果一个包必须保持 CommonJS,添加显式的互操作 shim 或小的兼容包装器(仅限短期)。
-
调整 CI 和运行时镜像
- 确保 CI 中使用的 Node 镜像和工具链支持您计划采用的 ESM 模式(导入语法,package.json "type": "module" 或兼容加载器)。
- 在验证 RC 在暂存环境中的表现之前,将 Babel 7.x 固定在紧急生产渠道中。
-
沟通和安排
- 协调下游消费者的升级(前端、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)
来源
继续阅读
Svelte 5.52.0 为 {@html} 增加 TrustedHTML 支持,实现更安全的 Trusted Types 集成
2026年2月21日Svelte 5.52.0(2026年2月18日)为 {@html} 表达式添加 TrustedHTML 支持,使应用能够在不进行字符串强制转换的情况下与浏览器的 Trusted Types 互操作——对 SSR 和客户端渲染的应用来说,XSS 防护很重要。
Next.js 16 使 Turbopack 成为开发和构建的稳定默认选项
2026年2月20日Next.js 16 将 Turbopack 调整为稳定/默认,提升对 Node.js 的最低版本要求,并发布面向生产的缓存原语——全栈团队现在必须改变的事项。
Vite 8.0.0‑beta.14 增加服务器端 .wasm?init(WASM 服务器端渲染)并将 Rolldown 更新至 1.0.0‑rc.4
2026年2月19日Vite 的 2026 年 2 月 12 日测试版引入对预初始化 WebAssembly 模块的 SSR 支持,并将打包器集成升级至 Rolldown 1.0.0‑rc.4——这是一项实用的变更,能够减少客户端 hydration 的工作量并提升 Wasm 密集型服务器渲染的工具链稳定性。