我們已與 webpack 團隊建立合作夥伴關係。 Rspack 是一個嘗試使用 Rust 優化 webpack 效能的項目,並且已經取得了良好的進展。
我們將繼續與 webpack 團隊探索更多優化 webpack 的可能性。當 Rspack 達到一定的成熟度時,webpack 將嘗試使用實驗性標誌將 Rspack 集成到 webpack 中。
我們更重視以較低的遷移成本為現有的網路專案帶來效能提升,而不是單純追求基準測試指標。
與 Webpack 生態系的相容性會導致一些效能損失,但根據我們的驗證結果,這種損失在可接受的範圍內。
Rspack 內部使用 SWC 執行程式碼降級編譯,您可以透過builtin:swc-loader進行設定,因此無需使用 babel-loader 執行程式碼降級編譯。
不,Rspack 的目標不是 100% 相容於 100% 的 Webpack API。根據帕雷托原則,我們優先實作大多數專案中常用的 API,並根據使用者需求支援其他 API。
我們計畫支援它。我們正在與 NAPI-RS 團隊一起探索 Wasm 解決方案,目前仍處於探索階段。未來會有更多進展。
即使 webpack + SWC-loader 解決了 babel-loader 的效能問題,webpack 本身仍然存在許多效能瓶頸,例如 make 和 seal 階段是單執行緒的。然而,Rspack 打破了這些限制,因此 Rspack 的效能比 webpack + SWC-loader 更好,尤其是在多核心場景中。
不,您可以像開發 webpack 外掛和載入器一樣,使用 JavaScript 開發外掛和載入器。同時,我們正在探索如何支援使用者使用 Rust 開發自訂外掛和載入器。
Rspack 將支援 React Server Component。目前,我們已在內部專案中嘗試 Rspack + RSC,並且看到了顯著的效能提升。
相關 PR:#5824。
是的,我們目前正在許多內部專案中使用 Rspack 進行建置,並且它在生產環境中運行順暢。
我們的目標是讓 Rspack 產生的運行時程式碼與 Webpack 完全一致(也就是說,您幾乎無法從輸出中判斷它是 Webpack 還是 Rspack 的輸出)。雖然我們尚未實現完全一致,但我們將繼續改進運行時並最終實現完全一致。