Meteor 3.4 已发布:Rspack 集成,构建速度提升 4 倍,包体积缩小 8 倍,以及扩展的打包器功能

发布: (2026年1月30日 GMT+8 23:35)
9 min read
原文: Dev.to

I’m happy to translate the article for you, but I’ll need the full text of the post (the content you’d like translated). Could you please paste the article’s body here? Once I have the text, I’ll provide a Simplified Chinese translation while keeping the source line, formatting, markdown, and any code blocks or URLs unchanged.

新功能

  • Rspack 打包器 现已成为核心的一部分,缩短构建时间,减小打包器体积,并支持更广泛的 JavaScript 生态系统中的标准配置模式和特性。
  • 此次发布实现了许多长期请求的改进,这些改进已在 Meteor 3 系列中陆续推出。

最近版本回顾

版本亮点
3.2新增 meteor profile 用于测量构建时间和包体积。
3.3首轮优化:SWC 转译器、新的监视器以及其他性能调优。
3.4完全迁移至 Rspack,支持 HMR、Tree‑shaking、完整的 ESM 支持、现代插件等。

核心团队已经将 Galaxy Cloud app 迁移到 Rspack,展示了真实场景下的性能提升。本文详细说明了这些更改,并提供了升级到 Meteor 3.4 后可以预期的指标。

本次发布的社区贡献包括:

  • 对 Meteor React suspense hooks 的稳定性和性能改进。
  • collection-extensions 包集成到核心。
  • 为 Cordova 提供现代化构建支持,等等。

入门指南

创建新应用

# 使用 Meteor 3.4 创建一个新 Meteor 应用
meteor create my-app --release 3.4

Meteor 3.3 和 3.4 引入的所有改进——包括 Rspack 集成——在新应用中默认启用,并应用于所有骨架示例。运行 meteor create --help 可查看可用的骨架。

更新现有应用

# 将你现有的 Meteor 应用升级到 3.4 版本
meteor update --release 3.4

启用 Meteor 打包器优化

在你的 package.json 中添加 modern 标志:

{
  "meteor": {
    "modern": true
  }
}

有关详细信息,请参阅 Bundler Optimizations requirements

启用 Rspack 集成

meteor add rspack

请查看现有应用的 Rspack integration requirements

亮点

更快的构建

Meteor 3.4 构建速度提升约 70 %(≈ 3.5 倍),得益于 Rspack 基于 Rust 的编译。Meteor 打包器仍然处理 Atmosphere 包,但该部分已在 3.3 中优化,使你兼得两者优势。

更快的构建图表

这些指标是在 Galaxy 应用 迁移到 Rspack 后测得。你的应用也应看到类似的提升。

更小的包

Tree‑shaking 在 Meteor 3.4 中终于可用。结合 Rspack 的块拆分、动态导入和压缩,包体积大幅缩小。

  • Galaxy 应用的主客户端包相比 3.3.2 版下降了 ≈ 88 %
  • 更小的包意味着更少的代码传输到浏览器,加载速度更快。

更小的包图表

收益会因应用、依赖和你启用的具体优化而异,但仅 tree‑shaking 就能带来显著改进。

Source:

Atmosphere 包体积缩减

Meteor 3.4 引入了一项针对 Atmosphere 包的优化,具体包括:

  • 可以将包标记为 devOnly,这样它们会在生产构建中被完全移除。
  • package.js 中新增 Npm.devDepends 选项,用于定义开发依赖,确保仅在开发阶段包含所需的 Node 模块,而在生产构建(meteor build)时将其排除。

在部署了 Galaxy app 之后,主机上存储的整体 bundle 大小 下降约 42 %。该改进适用于所有应用,因为 Meteor 核心包已经使用了新的 Atmosphere 优化配置。随着你(或社区)更新自己的 Atmosphere 包——正确地在生产构建中跳过 devOnly 包和依赖——将会获得更多收益,使最终容器在主机上的体积明显更小。

Atmosphere optimization

现代设置

Meteor 3.4 引入 Rspack,让您可以从社区配置现代化的构建。

支持的设置包括 React、React Compiler、Vue、Solid、Svelte 和 Angular,全部使用它们的最新版本。像 CoffeeScriptBlaze 这样的传统设置仍然受支持,保持旧项目的兼容性。

通过此更新,ESM 包得到完整支持。Meteor 应用现在可以使用依赖 ESM 行为的模块——一个明显的例子是对 React Router v7 的支持,这是社区长期请求的功能。

Rspack 还打开了许多新选项。所有 Rspack(或 Webpack)功能都可以在 Meteor 应用中配置,包括:

  • 用于 Service Worker 和 PWA 的 Workbox
  • 资产导入和优化
  • 控制打包器生命周期以实现自定义行为和改进

Meteor 3.4 还有哪些新内容?

感谢众多社区贡献者的投入,我们在本次发布中加入了新特性和优化。

  • react-meteor-data 更新至 4.0.1,带来对 suspense hooks 的改进以及整体性能提升。
    贡献者: @welkinwong@malua@evolross@StorytellerCZ

  • collection-extensions 集成进核心,这是我们将广泛使用的包迁入 Meteor 核心、以获得更好支持和维护的目标之一。
    贡献者: @harryadel

  • 当在项目的 package.json 中设置 "modern": true 时,Cordova 构建现在被视为 modern 而非 legacy。
    贡献者: @tmeyer24

  • --raw-logs 现在是 Meteor CLI 开发模式的默认选项。
    建议者: @paulishca(讨论见此处),实现者为 @Grubba27

更多改进和修复已在 Meteor 3.4 中推出;请查看完整的变更日志。

发布视频

  • 📹 Meteor 3.4 与未来之路 – Galaxy Expansion Day 5
  • 📹 Meteor 3 中的现代构建栈:为你的 Meteor 应用提供更快、更丰富的打包功能

对我们的贡献者表示衷心感谢

要实现 3.4 里程碑,没有活跃且热情的社区是不可能的。我们想强调这些贡献对本次发布的重要性。

核心贡献者:
@nachocodoner, @italojs, @Grubba27, @welkinwong, @harryadel, @vparpoil, @StorytellerCZ, @turoar23, @DipakHalkude, @sanki92, @evolross, @malua, @tmeyer24, @jeetburman, and @copleykj

感谢所有社区成员对 Meteor 3.4 的测试和反馈。

Source:

接下来 Meteor 的发展方向是什么?

对于即将发布的版本,我们的重点是:

  • 稳定性和补丁 – 收集反馈并修复问题。计划的 Meteor 3.4.x 补丁。
  • Change streams – 统一的 MongoDB 更改通知。计划在 Meteor 3.5 中实现。
  • Node 24 – 与更新的 Node LTS 发行版保持同步。
  • Native – 朝着超越 Cordova 的现代原生解决方案迈进。

欲了解更多即将开展的工作和优先事项,请参阅 Meteor 路线图

路线图

Roadmap

加入 Meteor 复兴运动!

Meteor 3.4 完成了我们设想的重大打包器改动。基于这些改动,我们将继续微调打包器,以在需要时扩展并提升体验。同时,我们也会在其他领域持续更新 Meteor,重新焕发我们所热爱的框架活力。

我们对即将到来的变化感到兴奋,迫不及待想让你加入 Meteor 的复兴!

如需反馈、提问或获取支持,请 访问我们的论坛加入我们的 Discord 频道

如果发现任何问题,请在 Meteor 问题追踪器 中报告。

关注我们的 TwitterGitHub

敬请期待,一如既往,祝编码愉快! ☄️

Back to Blog

相关文章

阅读更多 »

JavaScript 的秘密生活:Proxy

Timothy 坐在他的书桌前,看起来有点不知所措。他有一个简单的 user 对象,但他的代码里充斥着 if 语句。js let user = { name: 'Timothy',...

JavaScript 概念

在 JavaScript 中,你首先遇到的最重要的概念之一是变量。JavaScript 提供了三种主要的声明变量的方式:var、let 和 const。