常见问题
Rspack 和 webpack 的关系是怎样的?
我们和 webpack 团队确立了合作关系,Rspack 是 webpack 通过 Rust 进行性能优化的一个尝试,并已经取得了良好进展。
我们会和 webpack 团队持续探索优化 webpack 的更多可能性。
兼容 JavaScript 和 webpack 生态不会存在性能损失吗?
我们更重视以较低的迁移成本为现有的 web 项目带来性能提升,而不是单纯追求 benchmark 指标。
兼容 webpack 生态会带来一定的性能损失,但是根据我们的验证结果,这个损失在可接受范围内。
不使用 babel-loader 的话,如何实现兼容性降级编译?
Rspack 内部使用 SWC 进行代码的降级编译(通过 builtin:swc-loader),因此无需通过 babel-loader 来进行代码的降级编译。
Rspack 对 webpack API 是 100% 兼容吗?
不是,Rspack 目标不是完全兼容 100% 的 webpack API,根据二八定律的原则,我们优先实现了在大部分项目里高频使用的 API,并根据用户需求来进一步支持其他 API。
Rspack 相比 webpack + SWC-loader 有什么优势?
虽然 webpack + SWC-loader 解决了 babel-loader 的性能问题,但 webpack 本身仍然存在较多的性能瓶颈,如 make,seal 等阶段都是单线程的,而 Rspack 突破了这些限制,因此 Rspack 比 webpack + SWC-loader 有更好的性能表现,尤其是在多核场景。
自定义插件和自定义 Loader 需要使用 Rust 进行开发吗?
不需要。你可以像开发 webpack 插件和 loader 一样,使用 JavaScript 来开发插件和 loader。你也可以选择使用 Rust 来开发插件和 loader,参考 rspack-binding-template。
Rspack 计划支持 React Server Components 吗?
Rspack 团队正在支持 React Server Components,相关 PR:#12012。

