常見問題

Rspack 與 Webpack 未來的關係是什麼?

我們已與 webpack 團隊建立合作夥伴關係。 Rspack 是一個嘗試使用 Rust 優化 webpack 效能的項目,並且已經取得了良好的進展。

我們將繼續與 webpack 團隊探索更多優化 webpack 的可能性。當 Rspack 達到一定的成熟度時,webpack 將嘗試使用實驗性標誌將 Rspack 集成到 webpack 中。

與 JavaScript 或 webpack 生態系的相容性是否會導致效能損失?

我們更重視以較低的遷移成本為現有的網路專案帶來效能提升,而不是單純追求基準測試指標。

與 Webpack 生態系的相容性會導致一些效能損失,但根據我們的驗證結果,這種損失在可接受的範圍內。

如何在不使用 babel-loader 的情況下實現相容性回退編譯?

Rspack 內部使用 SWC 執行程式碼降級編譯,您可以透過builtin:swc-loader進行設定,因此無需使用 babel-loader 執行程式碼降級編譯。

Rspack 是否 100% 相容於 Webpack API?

不,Rspack 的目標不是 100% 相容於 100% 的 Webpack API。根據帕雷托原則,我們優先實作大多數專案中常用的 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 開發自訂外掛和自訂載入器?

不,您可以像開發 webpack 外掛和載入器一樣,使用 JavaScript 開發外掛和載入器。同時,我們正在探索如何支援使用者使用 Rust 開發自訂外掛和載入器。

Rspack 是否計畫支援 React Server Component?

Rspack 將支援 React Server Component。目前,我們已在內部專案中嘗試 Rspack + RSC,並且看到了顯著的效能提升。

相關 PR:#5824

Rspack 現在可以在生產環境中使用嗎?生產構件和 webpack 之間有什麼差異?

是的,我們目前正在許多內部專案中使用 Rspack 進行建置,並且它在生產環境中運行順暢。

我們的目標是讓 Rspack 產生的運行時程式碼與 Webpack 完全一致(也就是說,您幾乎無法從輸出中判斷它是 Webpack 還是 Rspack 的輸出)。雖然我們尚未實現完全一致,但我們將繼續改進運行時並最終實現完全一致。