常见问题解答

Rspack 和 Webpack 未来将如何共存?

我们已经与 webpack 团队建立了合作关系。Rspack 试图使用 Rust 优化 webpack 的性能,并且已经取得了不错的进展。

我们将继续与 webpack 团队探索更多优化 webpack 的可能性。当 Rspack 达到一定的成熟度时,webpack 将尝试通过实验性标志将 Rspack 集成到 webpack 中。

与 JavaScript 或 webpack 生态系统的兼容性会导致性能下降吗?

我们更重视以更低的迁移成本为现有 Web 项目带来性能提升,而不是单纯追求基准测试指标。

与 Webpack 生态系统的兼容性会导致一些性能下降,但根据我们的验证结果,这种下降在可接受的范围内。

如何在不使用 babel-loader 的情况下实现兼容性回退编译?

Rspack 内部使用 SWC 进行代码降级编译,您可以通过 内置:swc-loader 配置,因此无需使用 babel-loader 进行代码降级编译。

Rspack 是否与 Webpack API 100% 兼容?

不是的,Rspack 的目标不是与 Webpack API 的 100% 内容实现 100% 兼容。根据帕累托法则,我们优先实现大多数项目中常用的 API,并根据用户需求支持其他 API。

Rspack 是否计划支持浏览器端构建的 Wasm?

我们计划支持它。我们正在与 NAPI-RS 团队一起探索 Wasm 解决方案,目前仍处于探索阶段。未来将会取得更多进展。

与 Webpack + SWC-loader 相比,Rspack 的优势是什么?

即使 webpack + SWC-loader 解决 babel-loader 的性能问题,webpack 本身仍然存在许多性能瓶颈,例如 make 和 seal 阶段是单线程的。然而,Rspack 突破了这些限制,因此 Rspack 比 webpack + SWC-loader 具有更好的性能,尤其是在多核场景下。

自定义插件和自定义加载器是否需要使用 Rust 开发?

不需要,您可以使用 JavaScript 开发插件和加载器,就像开发 webpack 插件和加载器一样。同时,我们正在探索如何支持用户使用 Rust 开发自定义插件和加载器。

Rspack 是否计划支持 React Server Component?

Rspack 将支持 React Server Component。目前,我们在内部项目中尝试了 Rspack + RSC,并看到了显著的性能提升。

相关 PR:#5824.

Rspack 现在可以用于生产环境了吗?生产制品与 webpack 之间有什么区别?

是的,我们目前正在许多内部项目中使用 Rspack 进行构建,并且它在生产环境中运行良好。

我们的目标是使 Rspack 生成的运行时代码与 Webpack 完全一致(即您几乎无法从输出中判断它是 Webpack 还是 Rspack 的输出)。虽然我们还没有完全实现一致性,但我们将继续改进运行时,最终实现完全一致。