路線圖

目前的文件列出 Rspack 將支援的一些重要功能,其中一些功能已經在進行中,而其他功能將在未來版本的 Rspack 中實作。

上次更新:2024-10

Rspack 1.x 迭代

Rspack 將每 2-3 個月發布一個小版本,每個版本都包含重要的新功能和改進。

更快的 HMR

我們正在開發一種新的增量建構實作,它將顯著提高 Rspack 的 HMR 效能。

Rspack v1.1 將實驗性地支援此功能,並將在未來版本中繼續優化,直到預設啟用。

持久快取

持久快取可以在多次建構期間快取建構產物,顯著減少後續建構的時間,尤其是為大型專案提供顯著的效能提升。

我們正在為 Rspack 實作持久快取功能,並計畫在 Rspack v1.2 中發布實驗性支援。

可攜式快取

Rspack 快取功能的演進路徑遵循記憶體快取、持久快取和可攜式快取的循序實作。目前,Rspack 已實作記憶體快取,並正在實作持久快取。

之後,我們計畫繼續實作可攜式快取。這表示 Rspack 的建構快取不僅會是持久的,而且還可以在環境和機器之間攜帶。這將有助於團隊更好地利用快取,並為分散式建構奠定基礎。

Webpack API 對齊

由於 webpack 包含大量 API,我們將首先根據社群的回饋,努力支援最常用的 loader 和外掛。

穩定的 Rust API

目前,較高層級的工具可以使用 JS API 來整合 Rspack,這提供了良好的擴充性。然而,Rust 和 JavaScript 之間的通訊開銷限制了 Rspack 的效能。我們也提供 SWC Wasm 外掛 以支援擴充功能,但其效能仍然比原生語言慢。為了為較高層級的工具提供更靈活的整合選項和更好的效能,我們計畫公開 Rspack 的 Rust API 以進行整合。

改進的 ESM 輸出

ESM 是 JavaScript 模組的標準。我們目前正在改進 Rspack 和 webpack 對 ESM 輸出的支援,並建立一個基於 Rspack 的程式庫建構工具,稱為 Rslib。這將使開發人員在建構 npm 套件時,可以更好地利用 ESM 的靜態分析和 tree-shaking。

React 伺服器元件支援

在 ByteDance,我們已根據 Rspack 實驗性地支援 RSC(React 伺服器元件),並在大型 Web 應用程式中驗證了它。未來,Rspack 將為 RSC 提供一流的支援,並提供更多核心功能,使 RSC 更易於實作。例如,Rspack 現在支援 layer 功能,該功能允許在單次執行中為多個環境建構。

基於 TypeScript 的最佳化

目前,當 Rspack 處理 TypeScript 模組時,它會先透過 loader 將它們轉換為 JavaScript,然後再進一步處理。這提供了靈活性,但也阻礙了進一步優化建構輸出。例如,開發人員需要使用 enum 而不是 const enum,但是 enum 難以最佳化為常數。未來,我們計畫將 TypeScript 視為 Rspack 中的一等公民,利用 TypeScript 的靜態資訊來提供對建構輸出進行更進階的編譯時最佳化(例如 基於類型的屬性重新命名)。