本文件列出從 Rspack v0.7 到 v1.0 的所有重大變更。您可以參考此文件進行遷移。
詳情請參閱Rspack v1.0.0 中的重大變更。
在 Rspack 1.x 中,我們已將預設設定值與 Webpack 的預設值對齊。
experiments.css 的預設值已從 true
變更為 false
。
在 Rspack 0.x 中,預設啟用 experiments.css
,這表示結尾為 *.css
的檔案會自動被視為 type: 'css/auto'
,而無需手動包含其他 loader 來處理 CSS 檔案。
如果您依賴內建功能來處理 CSS 檔案而不使用任何 loader,或者如果您使用以下設定來處理 CSS 檔案
請注意,您現在需要手動啟用 experiments.css
。
optimization.concatenateModules 的預設值已從 false
變更為
mode
為 'production'
時為 true
。mode
的其他值為 false
。在 Rspack 1.x 中,模組串聯最佳化變得更加穩定。因此,它現在在生產模式中預設啟用,允許將多個模組串聯成單個模組,以減少輸出大小並提高壓縮效率。
devtool 的預設值已從 false
變更為
mode
為 'development'
時為 eval
。mode
的其他值為 false
。
@rspack/cli
會覆寫@rspack/core
中的預設devtool
值。因此,如果您使用@rspack/cli
,此變更不會影響您。
experiments.asyncWebAssembly 的預設值已從 false
變更為取決於 experiments.futureDefaults
設定。只有當 experiments.futureDefaults
設定為 true
時,才會預設啟用。
如果您使用 WebAssembly 模組作為非同步模組,您現在需要手動將 experiments.asyncWebAssembly
設定為 true
。
splitChunks.cacheGroups.{cacheGroup}.reuseExistingChunk 的預設值已從 true
變更為 false
。
當 mode
為 none
時,optimization.moduleIds 的預設值已變更為 'natural'
。
當 mode
為 none
時,optimization.chunkIds 的預設值已變更為 'natural'
。
請改用 resolve.tsConfig。
請改用 output.library.amdContainer。
為了簡化核心,Rspack 1.x 已移除內建的 SWC 插件。您現在需要手動包含它們。
請改用 @swc/plugin-styled-components。
請改用 @swc/plugin-emotion。
請改用 @swc/plugin-relay。
請改用 @swc/plugin-prefresh。
在 Rspack 0.x 中,我們使用內建的 rspack.SwcCssMinimizerRspackPlugin
來壓縮 CSS 大小。現在,我們已將其移除,並以 rspack.LightningCssMinimizerRspackPlugin 取代,以處理相同的功能。
如果您先前手動註冊並設定了 rspack.SwcCssMinimizerRspackPlugin
,則應切換至 rspack.LightningCssMinimizerRspackPlugin
Rspack 內建和預設啟用的 JavaScript 最小化插件的設定已與 SWC 的最小化設定對齊。重大變更如下
minimizerOptions.passes
:已移至 minimizerOptions.compress.passes
minimizerOptions.dropConsole
:已移至 minimizerOptions.compress.drop_console
minimizerOptions.pureFuncs
:已移至 minimizerOptions.compress.pure_funcs
minimizerOptions.keepClassNames
:已移至 minimizerOptions.mangle.keep_classnames
minimizerOptions.keepFnNames
:已移至 minimizerOptions.mangle.keep_fnames
minimizerOptions.comments
:已移至 minimizerOptions.format.comments
minimizerOptions.asciiOnly
:已移至 minimizerOptions.format.ascii_only
預設值變更
comments
(options.format.comments
):已從 false
變更為 "some"
我們已將其設定與 html-webpack-plugin 對齊,並進行以下重大變更
excludedChunks
已重新命名為 excludeChunks
mode
為 'production'
時,minify
現在預設為 true
@rspack/cli
已將其對 webpack-dev-server
的依賴從 v4 升級至 v5。如果您正在使用 @rspack/cli
,請注意以下重大變更:
ResolverFactory
和 Resolver
已使用 Rust 進行重構,以統一 JS 和 Rust 端的實作。由於此變更,ResolverFactory
和 Resolver
目前不支援任何 hook。
此外,Resolver
現在僅支援以下方法:
resolveSync
resolve
withOptions
此變更可能會導致某些外掛程式無法使用。
Rspack 支援 NormalModuleFactory 的 resolve hook。在大多數情況下,您可以使用此 hook 作為 Resolver
的 resolve
hook 的替代方案,以實現相同的功能。