当前文档列出了从 Rspack v0.7 到 v1.0 的所有不兼容更新,你可以参考此文档来迁移。
查看 Breaking changes in 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 内置并默认启用的 JS 压缩插件。我们已将其配置与 SWC 的压缩配置对齐,不兼容的配置如下:
minimizerOptions.passes:移动到 minimizerOptions.compress.passesminimizerOptions.dropConsole:移动到 minimizerOptions.compress.drop_consoleminimizerOptions.pureFuncs:移动到 minimizerOptions.compress.pure_funcsminimizerOptions.keepClassNames:移动到 minimizerOptions.mangle.keep_classnamesminimizerOptions.keepFnNames:移动到 minimizerOptions.mangle.keep_fnamesminimizerOptions.comments:移动到 minimizerOptions.format.commentsminimizerOptions.asciiOnly:移动到 minimizerOptions.format.ascii_only默认值的变化:
comments (options.format.comments):默认值从 false 改为 "some"我们将其配置与 html-webpack-plugin 对齐,不兼容的配置如下:
excludedChunks 更名为 excludeChunksmode 为 'production' 时,minify 默认为 true@rspack/cli 已将其依赖的 webpack-dev-server 从 v4 升级至 v5。如果你使用 @rspack/cli,请注意以下不兼容的变更:
ResolverFactory 和 Resolver 使用 Rust 重构ResolverFactory 和 Resolver 已被使用 Rust 进行重构,以统一 JS 侧和 Rust 侧的实现。由于这一变更,目前 ResolverFactory 和 Resolver 并不支持任何钩子。
此外,目前 Resolver 仅支持以下方法:
resolveSyncresolvewithOptions此变更可能会导致某些插件无法正常使用。
Rspack 支持 NormalModuleFactory 的 resolve 钩子,在大多数情况下,你可以使用该钩子替代 Resolver 的 resolve 钩子来实现相关的功能。