2023 年 8 月 24 日
在 0.3 版本中,當設定 experiments.css = true
時,Rspack 將預設的 CSS 處理行為與 webpack 對齊。這涉及移除許多內建的 CSS 轉換邏輯,這會引入一些重大變更。如果您的應用程式之前依賴這些轉換邏輯,請注意以下的遷移步驟。
在 Rspack 完全支援 postcss-loader
之前,Rspack 實作了 @rspack/postcss-loader
和內建的 builtins.postcss
來實現該功能。目前,Rspack 完全支援 postcss-loader
,因此我們決定棄用 @rspack/postcss-loader
和 builtins.postcss
。使用 @rspack/postcss-loader
的使用者可以無縫遷移到 postcss-loader
,而之前使用 Rspack 的 builtins.postcss
進行 px2rem
轉換功能的使用者可以遷移到 postcss-loader
和 postcss-plugin-px2rem
。以下是遷移過程
• 之前
• 之後
為了更好地與 webpack 的 CSS 處理對齊,Rspack 在 0.3 中移除了內建的自動加上前綴功能。您可以使用 postcss-loader
來實現 autoprefixer
。
您可以參考 examples/postcss-loader 以取得完整的範例。
由於目前 Rspack 中內部模組 API 的不穩定性,直接存取內部模組很容易導致重大變更。因此,Rspack 限制了直接存取內部模組的能力,並且僅支援從根模組存取 Rspack 的 API。
• 之前
• 之後
Rspack 原生支援 Web Workers,這表示您可以直接使用 Web Workers,而無需使用 worker-loader。以下是如何使用它
有關 Web Workers 支援的更多資訊,請參閱 Web Workers。
builtin:swc-loader
支援儘管 Rspack 提供了許多 SWC 編譯設定選項,但這些設定是全域的,無法滿足針對不同模組使用不同 SWC 轉換邏輯的需求。因此,Rspack 支援 builtin:swc-loader
以提供更精細的 SWC 轉換設定。與 JavaScript 版本的 swc-loader
相比,builtin:swc-loader
具有更好的效能。您可以使用 builtin:swc-loader
如下
您可以參考 examples/builtin-swc-loader 以取得更多範例。目前,builtin:swc-loader
仍有局限性,例如不支援 Wasm 外掛等。Rspack 將在未來版本中繼續迭代並支援 builtin:swc-loader
的更多功能。
效能優化是商業支援中的常見需求。為了降低企業的效能優化成本,我們改進了 Rspack Profile 的體驗。您可以使用 RSPACK_PROFILE 環境變數來產生效能優化相關的檔案。
有關 Profile 的更多詳細資訊,請參閱 效能分析。
與更多 API 對齊
splitChunks.chunks
支援 regex。splitChunk.\{cacheGroup\}.type
。splitChunk.\{cacheGroup\}.idHint
。ensureChunkConditionsPlugin
。rule.use
支援函式。configuration.profile
。與 0.2 版本相比,我們在 0.3 版本中實作了更多的外掛 API,並為更多的外掛進行了相容性改進。同時,我們改進了 webpack 的外掛 API 支援進度,使外掛 API 的支援進度更加透明。您可以在這裡追蹤外掛 API 的實作進度:plugin-api-progress。
在 0.3 版本中,我們進一步優化了與 webpack 架構的對齊,從原始基於 AST 的程式碼產生架構遷移到基於字串轉換的架構。此對齊工作進一步確保 Rspack 可以在程式碼產生階段與 webpack 的更多 Hook API 對齊,以便與更多的社群外掛相容。
從 0.2 版本開始,Rspack 提供了對 vue-loader 的支援。然而,基於 vue-loader 建立完整的 Vue.js CLI 解決方案可能是一項複雜的任務。為了簡化使用 Rspack 開發 Vue.js 應用程式,我們提供了 Rsbuild,這是一個開箱即用的解決方案。此解決方案可幫助開發人員輕鬆使用 Rspack 開發 Vue.js 應用程式。