From f60d3e361b48360081699c6106d8a7f79160fac6 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 6 May 2025 11:11:48 +0800 Subject: [PATCH 1/2] perf: enable Rspack incremental build by default --- e2e/package.json | 2 +- .../webpack/tests/__snapshots__/default.test.ts.snap | 4 ++++ packages/core/src/plugins/basic.ts | 12 +++++------- packages/core/tests/__snapshots__/basic.test.ts.snap | 6 ++++++ .../core/tests/__snapshots__/builder.test.ts.snap | 1 + .../core/tests/__snapshots__/default.test.ts.snap | 4 ++++ .../tests/__snapshots__/environments.test.ts.snap | 2 ++ 7 files changed, 23 insertions(+), 8 deletions(-) diff --git a/e2e/package.json b/e2e/package.json index 512d44bd25..6fe9eeaa40 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "scripts": { "e2e": "pnpm e2e:rspack && pnpm e2e:webpack", - "e2e:rspack": "cross-env NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" EXPERIMENTAL_RSPACK_INCREMENTAL=true playwright test", + "e2e:rspack": "cross-env NODE_OPTIONS=\"--experimental-vm-modules --no-warnings\" playwright test", "e2e:webpack": "cross-env PROVIDE_TYPE=webpack playwright test" }, "dependencies": { diff --git a/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap b/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap index 3d5aec80ce..22be4f751e 100644 --- a/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap +++ b/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap @@ -24,6 +24,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly 1`] = ` }, "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", @@ -482,6 +483,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when produ }, "experiments": { "asyncWebAssembly": true, + "incremental": false, }, "infrastructureLogging": { "level": "error", @@ -935,6 +937,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, "experiments": { "asyncWebAssembly": true, + "incremental": false, }, "infrastructureLogging": { "level": "error", @@ -1314,6 +1317,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, "experiments": { "asyncWebAssembly": true, + "incremental": false, }, "infrastructureLogging": { "level": "error", diff --git a/packages/core/src/plugins/basic.ts b/packages/core/src/plugins/basic.ts index 44bcd948c5..3cf5af4367 100644 --- a/packages/core/src/plugins/basic.ts +++ b/packages/core/src/plugins/basic.ts @@ -100,13 +100,11 @@ export const pluginBasic = (): RsbuildPlugin => ({ // https://github.com/web-infra-dev/rspack/pull/5486 process.env.WATCHPACK_WATCHER_LIMIT ||= '20'; - // This is temporary, we will remove it after Rspack incremental is stable - if (process.env.EXPERIMENTAL_RSPACK_INCREMENTAL) { - chain.experiments({ - ...chain.get('experiments'), - incremental: isDev, - }); - } + // TODO: we can remove it after Rspack incremental is enabled by default + chain.experiments({ + ...chain.get('experiments'), + incremental: isDev, + }); }, ); }, diff --git a/packages/core/tests/__snapshots__/basic.test.ts.snap b/packages/core/tests/__snapshots__/basic.test.ts.snap index 49cf687ee5..c1e790e0d4 100644 --- a/packages/core/tests/__snapshots__/basic.test.ts.snap +++ b/packages/core/tests/__snapshots__/basic.test.ts.snap @@ -4,6 +4,9 @@ exports[`plugin-basic > should apply basic config correctly in development 1`] = { "context": "/packages/core/tests", "devtool": "cheap-module-source-map", + "experiments": { + "incremental": true, + }, "infrastructureLogging": { "level": "error", }, @@ -42,6 +45,9 @@ exports[`plugin-basic > should apply basic config correctly in production 1`] = { "context": "/packages/core/tests", "devtool": false, + "experiments": { + "incremental": false, + }, "infrastructureLogging": { "level": "error", }, diff --git a/packages/core/tests/__snapshots__/builder.test.ts.snap b/packages/core/tests/__snapshots__/builder.test.ts.snap index 44e6f0b7db..fa7f2ac069 100644 --- a/packages/core/tests/__snapshots__/builder.test.ts.snap +++ b/packages/core/tests/__snapshots__/builder.test.ts.snap @@ -11,6 +11,7 @@ exports[`should use Rspack as the default bundler > apply Rspack correctly 1`] = }, "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", diff --git a/packages/core/tests/__snapshots__/default.test.ts.snap b/packages/core/tests/__snapshots__/default.test.ts.snap index f69df9e7b1..93bbf7bb96 100644 --- a/packages/core/tests/__snapshots__/default.test.ts.snap +++ b/packages/core/tests/__snapshots__/default.test.ts.snap @@ -11,6 +11,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly 1`] = ` }, "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", @@ -492,6 +493,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when prod }, "experiments": { "asyncWebAssembly": true, + "incremental": false, }, "infrastructureLogging": { "level": "error", @@ -1010,6 +1012,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", @@ -1408,6 +1411,7 @@ exports[`tools.rspack > should match snapshot 1`] = ` }, "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", diff --git a/packages/core/tests/__snapshots__/environments.test.ts.snap b/packages/core/tests/__snapshots__/environments.test.ts.snap index 9d0b5aa054..5c8e46a5b7 100644 --- a/packages/core/tests/__snapshots__/environments.test.ts.snap +++ b/packages/core/tests/__snapshots__/environments.test.ts.snap @@ -1306,6 +1306,7 @@ exports[`environment config > tools.rspack / bundlerChain can be configured in e "devtool": "eval-source-map", "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", @@ -1722,6 +1723,7 @@ exports[`environment config > tools.rspack / bundlerChain can be configured in e "devtool": "eval", "experiments": { "asyncWebAssembly": true, + "incremental": true, }, "infrastructureLogging": { "level": "error", From 7353f0311c8e8a13dccf32433dde7ba4c21a26c3 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 6 May 2025 11:27:43 +0800 Subject: [PATCH 2/2] fix: true --- .../compat/webpack/tests/__snapshots__/default.test.ts.snap | 6 +++--- packages/core/src/plugins/basic.ts | 2 +- packages/core/tests/__snapshots__/basic.test.ts.snap | 2 +- packages/core/tests/__snapshots__/default.test.ts.snap | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap b/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap index 22be4f751e..e29b1b27bb 100644 --- a/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap +++ b/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap @@ -483,7 +483,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when produ }, "experiments": { "asyncWebAssembly": true, - "incremental": false, + "incremental": true, }, "infrastructureLogging": { "level": "error", @@ -937,7 +937,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, "experiments": { "asyncWebAssembly": true, - "incremental": false, + "incremental": true, }, "infrastructureLogging": { "level": "error", @@ -1317,7 +1317,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, "experiments": { "asyncWebAssembly": true, - "incremental": false, + "incremental": true, }, "infrastructureLogging": { "level": "error", diff --git a/packages/core/src/plugins/basic.ts b/packages/core/src/plugins/basic.ts index 3cf5af4367..9b5c814ef4 100644 --- a/packages/core/src/plugins/basic.ts +++ b/packages/core/src/plugins/basic.ts @@ -103,7 +103,7 @@ export const pluginBasic = (): RsbuildPlugin => ({ // TODO: we can remove it after Rspack incremental is enabled by default chain.experiments({ ...chain.get('experiments'), - incremental: isDev, + incremental: true, }); }, ); diff --git a/packages/core/tests/__snapshots__/basic.test.ts.snap b/packages/core/tests/__snapshots__/basic.test.ts.snap index c1e790e0d4..7181476a4b 100644 --- a/packages/core/tests/__snapshots__/basic.test.ts.snap +++ b/packages/core/tests/__snapshots__/basic.test.ts.snap @@ -46,7 +46,7 @@ exports[`plugin-basic > should apply basic config correctly in production 1`] = "context": "/packages/core/tests", "devtool": false, "experiments": { - "incremental": false, + "incremental": true, }, "infrastructureLogging": { "level": "error", diff --git a/packages/core/tests/__snapshots__/default.test.ts.snap b/packages/core/tests/__snapshots__/default.test.ts.snap index 93bbf7bb96..a5b1b7b5e8 100644 --- a/packages/core/tests/__snapshots__/default.test.ts.snap +++ b/packages/core/tests/__snapshots__/default.test.ts.snap @@ -493,7 +493,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when prod }, "experiments": { "asyncWebAssembly": true, - "incremental": false, + "incremental": true, }, "infrastructureLogging": { "level": "error",