From adfd69981536a538941b5332eda8e4d3c2375934 Mon Sep 17 00:00:00 2001 From: LingyuCoder Date: Wed, 7 Jan 2026 16:43:05 +0800 Subject: [PATCH] feat: remove experiments.parallelLoader --- packages/rspack/etc/core.api.md | 3 -- packages/rspack/src/config/defaults.ts | 3 -- packages/rspack/src/config/normalization.ts | 2 -- packages/rspack/src/config/types.ts | 5 --- packages/rspack/src/loader-runner/index.ts | 5 +-- .../codegen-cache/rspack.config.js | 3 -- .../css/rspack.config.js | 3 -- .../execute-failed/rspack.config.js | 3 -- .../nul-byte/rspack.config.js | 3 -- .../recursive-import-module/rspack.config.js | 3 -- .../with-layer/rspack.config.js | 3 -- .../rspack.config.js | 3 -- .../rspack.config.js | 3 -- .../additional-data/rspack.config.js | 3 -- .../loader-parallel/async/rspack.config.js | 3 -- .../binary-with-source-map/rspack.config.js | 3 -- .../issue-webpack-9053/rspack.config.js | 3 -- .../loader-error-async/rspack.config.js | 3 -- .../loader-raw-string/rspack.config.js | 3 -- .../loader-raw/rspack.config.js | 3 -- .../loader-string/rspack.config.js | 3 -- .../loader-parallel/options/rspack.config.js | 3 -- .../parallel-object/rspack.config.js | 5 +-- .../parallel-option/rspack.config.js | 5 +-- .../pitching-mixed/rspack.config.js | 12 ------- .../loader-parallel/pitching/rspack.config.js | 12 ------- .../pre-post-loader/rspack.config.js | 3 -- .../source-map/rspack.config.js | 3 -- .../loader-parallel/sync/rspack.config.js | 3 -- .../rspack-test/defaultsCases/default/base.js | 1 - website/docs/en/config/experiments.mdx | 33 ------------------- website/docs/en/config/module-rules.mdx | 4 --- website/docs/zh/config/experiments.mdx | 33 ------------------- website/docs/zh/config/module-rules.mdx | 4 --- 34 files changed, 3 insertions(+), 184 deletions(-) diff --git a/packages/rspack/etc/core.api.md b/packages/rspack/etc/core.api.md index 7b97f42628a6..80c0143f292b 100644 --- a/packages/rspack/etc/core.api.md +++ b/packages/rspack/etc/core.api.md @@ -2451,7 +2451,6 @@ export type Experiments = { incremental?: IncrementalPresets | Incremental; futureDefaults?: boolean; buildHttp?: HttpUriOptions; - parallelLoader?: boolean; useInputFileSystem?: UseInputFileSystem; nativeWatcher?: boolean; inlineConst?: boolean; @@ -2536,8 +2535,6 @@ export interface ExperimentsNormalized { // (undocumented) outputModule?: boolean; // (undocumented) - parallelLoader?: boolean; - // (undocumented) topLevelAwait?: boolean; // (undocumented) typeReexportsPresence?: boolean; diff --git a/packages/rspack/src/config/defaults.ts b/packages/rspack/src/config/defaults.ts index 897a65628459..3a917e390cd2 100644 --- a/packages/rspack/src/config/defaults.ts +++ b/packages/rspack/src/config/defaults.ts @@ -259,9 +259,6 @@ const applyExperimentsDefaults = ( D(experiments.incremental, 'emitAssets', true); } - // IGNORE(experiments.parallelLoader): Rspack specific configuration for parallel loader execution - D(experiments, 'parallelLoader', false); - // IGNORE(experiments.useInputFileSystem): Rspack specific configuration // Enable `useInputFileSystem` will introduce much more fs overheads, So disable by default. D(experiments, 'useInputFileSystem', false); diff --git a/packages/rspack/src/config/normalization.ts b/packages/rspack/src/config/normalization.ts index e3cad95ab798..a8da6cc73e19 100644 --- a/packages/rspack/src/config/normalization.ts +++ b/packages/rspack/src/config/normalization.ts @@ -422,7 +422,6 @@ export const getNormalizedRspackOptions = ( getNormalizedIncrementalOptions(options), ), buildHttp: experiments.buildHttp, - parallelLoader: experiments.parallelLoader, useInputFileSystem: experiments.useInputFileSystem, }; }), @@ -704,7 +703,6 @@ export interface ExperimentsNormalized { incremental?: false | Incremental; futureDefaults?: boolean; buildHttp?: HttpUriPluginOptions; - parallelLoader?: boolean; useInputFileSystem?: false | RegExp[]; /** * @deprecated This option is deprecated, it's already stable and enabled by default, Rspack will remove this option in future version diff --git a/packages/rspack/src/config/types.ts b/packages/rspack/src/config/types.ts index c6a82b63a988..6d346c5f033b 100644 --- a/packages/rspack/src/config/types.ts +++ b/packages/rspack/src/config/types.ts @@ -2826,11 +2826,6 @@ export type Experiments = { * @default false */ buildHttp?: HttpUriOptions; - /** - * Enable parallel loader - * @default false - */ - parallelLoader?: boolean; /** * Enable Node.js input file system * @default false diff --git a/packages/rspack/src/loader-runner/index.ts b/packages/rspack/src/loader-runner/index.ts index dac351f3f567..d30ad7f63388 100644 --- a/packages/rspack/src/loader-runner/index.ts +++ b/packages/rspack/src/loader-runner/index.ts @@ -964,10 +964,7 @@ export async function runLoaders( }; const enableParallelism = (currentLoaderObject: any) => { - return ( - compiler.options.experiments.parallelLoader && - currentLoaderObject?.parallel - ); + return currentLoaderObject?.parallel; }; const isomorphoicRun = async (fn: Function, args: any[]) => { diff --git a/tests/rspack-test/configCases/loader-parallel-import-module/codegen-cache/rspack.config.js b/tests/rspack-test/configCases/loader-parallel-import-module/codegen-cache/rspack.config.js index 76e6ae0b92c0..e533514e47aa 100644 --- a/tests/rspack-test/configCases/loader-parallel-import-module/codegen-cache/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel-import-module/codegen-cache/rspack.config.js @@ -18,7 +18,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel-import-module/css/rspack.config.js b/tests/rspack-test/configCases/loader-parallel-import-module/css/rspack.config.js index 94c0a53f3b1e..91c09289a9be 100644 --- a/tests/rspack-test/configCases/loader-parallel-import-module/css/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel-import-module/css/rspack.config.js @@ -79,7 +79,4 @@ module.exports = { } }) ], - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel-import-module/execute-failed/rspack.config.js b/tests/rspack-test/configCases/loader-parallel-import-module/execute-failed/rspack.config.js index f620066fe599..9b3062836385 100644 --- a/tests/rspack-test/configCases/loader-parallel-import-module/execute-failed/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel-import-module/execute-failed/rspack.config.js @@ -12,7 +12,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel-import-module/nul-byte/rspack.config.js b/tests/rspack-test/configCases/loader-parallel-import-module/nul-byte/rspack.config.js index 27fbad829b67..3dd6f370c8c4 100644 --- a/tests/rspack-test/configCases/loader-parallel-import-module/nul-byte/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel-import-module/nul-byte/rspack.config.js @@ -18,7 +18,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel-import-module/recursive-import-module/rspack.config.js b/tests/rspack-test/configCases/loader-parallel-import-module/recursive-import-module/rspack.config.js index b273356722b5..385364063fec 100644 --- a/tests/rspack-test/configCases/loader-parallel-import-module/recursive-import-module/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel-import-module/recursive-import-module/rspack.config.js @@ -18,7 +18,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel-import-module/with-layer/rspack.config.js b/tests/rspack-test/configCases/loader-parallel-import-module/with-layer/rspack.config.js index d948b11e13f0..a00f24204cae 100644 --- a/tests/rspack-test/configCases/loader-parallel-import-module/with-layer/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel-import-module/with-layer/rspack.config.js @@ -16,7 +16,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/additional-data-no-passthrough/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/additional-data-no-passthrough/rspack.config.js index 0030df55d35f..fbae4db111ab 100644 --- a/tests/rspack-test/configCases/loader-parallel/additional-data-no-passthrough/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/additional-data-no-passthrough/rspack.config.js @@ -21,7 +21,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/additional-data-passthrough/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/additional-data-passthrough/rspack.config.js index 66317941b422..fb9c46c96172 100644 --- a/tests/rspack-test/configCases/loader-parallel/additional-data-passthrough/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/additional-data-passthrough/rspack.config.js @@ -21,7 +21,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/additional-data/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/additional-data/rspack.config.js index 31d8f1b9f8aa..3a5bdb3cb701 100644 --- a/tests/rspack-test/configCases/loader-parallel/additional-data/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/additional-data/rspack.config.js @@ -16,7 +16,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/async/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/async/rspack.config.js index 8f2d3ec2479c..55d26625abcc 100644 --- a/tests/rspack-test/configCases/loader-parallel/async/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/async/rspack.config.js @@ -58,7 +58,4 @@ module.exports = { createRule(10, [syncLoader, syncLoader, syncLoader]) ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/binary-with-source-map/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/binary-with-source-map/rspack.config.js index 450ac1099e7a..836198eefd30 100644 --- a/tests/rspack-test/configCases/loader-parallel/binary-with-source-map/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/binary-with-source-map/rspack.config.js @@ -15,7 +15,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/issue-webpack-9053/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/issue-webpack-9053/rspack.config.js index 42bc3f01e8ca..750ede0e318c 100644 --- a/tests/rspack-test/configCases/loader-parallel/issue-webpack-9053/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/issue-webpack-9053/rspack.config.js @@ -12,7 +12,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/loader-error-async/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/loader-error-async/rspack.config.js index 3be819fde787..3ce429a289e4 100644 --- a/tests/rspack-test/configCases/loader-parallel/loader-error-async/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/loader-error-async/rspack.config.js @@ -32,7 +32,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/loader-raw-string/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/loader-raw-string/rspack.config.js index f24413e58efc..ca67f57ce81d 100644 --- a/tests/rspack-test/configCases/loader-parallel/loader-raw-string/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/loader-raw-string/rspack.config.js @@ -19,7 +19,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/loader-raw/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/loader-raw/rspack.config.js index 7038843d6651..d5e6f5a14557 100644 --- a/tests/rspack-test/configCases/loader-parallel/loader-raw/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/loader-raw/rspack.config.js @@ -10,7 +10,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/loader-string/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/loader-string/rspack.config.js index 48b35d1804db..9c8e154cfa99 100644 --- a/tests/rspack-test/configCases/loader-parallel/loader-string/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/loader-string/rspack.config.js @@ -17,7 +17,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/options/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/options/rspack.config.js index cb192a713bfc..e47b3604a3b3 100644 --- a/tests/rspack-test/configCases/loader-parallel/options/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/options/rspack.config.js @@ -115,7 +115,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/parallel-object/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/parallel-object/rspack.config.js index c355f19a639d..099153168fb6 100644 --- a/tests/rspack-test/configCases/loader-parallel/parallel-object/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/parallel-object/rspack.config.js @@ -8,7 +8,7 @@ module.exports = { { loader: "./unclonable.js", options: { - notclonable() {} + notclonable() { } } }, { @@ -20,7 +20,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/parallel-option/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/parallel-option/rspack.config.js index 0d2112f94641..49c944033f8b 100644 --- a/tests/rspack-test/configCases/loader-parallel/parallel-option/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/parallel-option/rspack.config.js @@ -8,7 +8,7 @@ module.exports = { { loader: "./unclonable.js", options: { - notclonable() {} + notclonable() { } } }, { @@ -20,7 +20,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/pitching-mixed/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/pitching-mixed/rspack.config.js index f333b89537c1..5ce2ef48b773 100644 --- a/tests/rspack-test/configCases/loader-parallel/pitching-mixed/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/pitching-mixed/rspack.config.js @@ -21,9 +21,6 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } }, { module: { @@ -47,9 +44,6 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } }, { module: { @@ -73,9 +67,6 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } }, { module: { @@ -95,8 +86,5 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } } ]; diff --git a/tests/rspack-test/configCases/loader-parallel/pitching/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/pitching/rspack.config.js index 141c3fe84cca..f22909b4261f 100644 --- a/tests/rspack-test/configCases/loader-parallel/pitching/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/pitching/rspack.config.js @@ -21,9 +21,6 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } }, { module: { @@ -47,9 +44,6 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } }, { module: { @@ -73,9 +67,6 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } }, { module: { @@ -99,8 +90,5 @@ module.exports = [ CONTEXT: JSON.stringify(__dirname) }) ], - experiments: { - parallelLoader: true - } } ]; diff --git a/tests/rspack-test/configCases/loader-parallel/pre-post-loader/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/pre-post-loader/rspack.config.js index d172a1b6e3d0..9db7884df347 100644 --- a/tests/rspack-test/configCases/loader-parallel/pre-post-loader/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/pre-post-loader/rspack.config.js @@ -24,7 +24,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/source-map/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/source-map/rspack.config.js index 31d8f1b9f8aa..3a5bdb3cb701 100644 --- a/tests/rspack-test/configCases/loader-parallel/source-map/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/source-map/rspack.config.js @@ -16,7 +16,4 @@ module.exports = { } ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/configCases/loader-parallel/sync/rspack.config.js b/tests/rspack-test/configCases/loader-parallel/sync/rspack.config.js index 053c7487ba95..9fb34384f276 100644 --- a/tests/rspack-test/configCases/loader-parallel/sync/rspack.config.js +++ b/tests/rspack-test/configCases/loader-parallel/sync/rspack.config.js @@ -36,7 +36,4 @@ module.exports = { createRule(10, [syncLoader, syncLoader, syncLoader]) ] }, - experiments: { - parallelLoader: true - } }; diff --git a/tests/rspack-test/defaultsCases/default/base.js b/tests/rspack-test/defaultsCases/default/base.js index 94a36fa8ee48..071afb888ca8 100644 --- a/tests/rspack-test/defaultsCases/default/base.js +++ b/tests/rspack-test/defaultsCases/default/base.js @@ -48,7 +48,6 @@ module.exports = { inlineEnum: false, lazyBarrel: true, lazyCompilation: false, - parallelLoader: false, topLevelAwait: true, typeReexportsPresence: false, useInputFileSystem: false, diff --git a/website/docs/en/config/experiments.mdx b/website/docs/en/config/experiments.mdx index 6e42a7b89d94..8ecc74dd3293 100644 --- a/website/docs/en/config/experiments.mdx +++ b/website/docs/en/config/experiments.mdx @@ -148,39 +148,6 @@ The table below shows the results of incremental in different scenarios: Starting from v1.4.0, Rspack enables incremental builds for all phases by default using `'advance-silent'` mode. In previous versions, it only activated incremental builds for the `make` and `emitAssets` phases by default with `'safe'` mode. -## experiments.parallelLoader - - - -- **Type**: `boolean` -- **Default:** `false` - -Enable parallel loader execution. You need to manually enable parallel mode for each loader using [`rules[].use.parallel`](/config/module-rules#rulesuseparallel). When enabled, the corresponding loaders will be executed in worker threads. - -```js title="rspack.config.mjs" -export default { - module: { - rules: [ - { - test: /\.less$/, - use: [ - { - loader: 'less-loader', - parallel: true, - options: { - // loader options - }, - }, - ], - }, - ], - }, - experiments: { - parallelLoader: true, - }, -}; -``` - ## experiments.cache diff --git a/website/docs/en/config/module-rules.mdx b/website/docs/en/config/module-rules.mdx index 70818d9009af..a9e06d6a19d7 100644 --- a/website/docs/en/config/module-rules.mdx +++ b/website/docs/en/config/module-rules.mdx @@ -764,9 +764,6 @@ export default { }, ], }, - experiments: { - parallelLoader: true, - }, }; ``` @@ -774,7 +771,6 @@ When multiple loaders within the same rule have `parallel` enabled, Rspack execu :::tip -- This feature is experimental. It only takes effect when [experiments.parallelLoader](/config/experiments#experimentsparallelloader) is enabled. - The loader options must comply with the [HTML structured clone algorithm](https://nodejs.org/api/worker_threads.html#portpostmessagevalue-transferlist), otherwise transmission will fail. - In worker mode, most methods on `LoaderContext._compilation`, `LoaderContext._compiler`, `LoaderContext._module` are not supported. diff --git a/website/docs/zh/config/experiments.mdx b/website/docs/zh/config/experiments.mdx index eb6117b254ad..4cda88f9a9f6 100644 --- a/website/docs/zh/config/experiments.mdx +++ b/website/docs/zh/config/experiments.mdx @@ -149,39 +149,6 @@ export default { Rspack 在 v1.4.0 后默认使用 `'advance-silent'` 开启所有阶段的增量构建;之前的版本默认使用 `'safe'` 仅开启 `make` 和 `emitAssets` 阶段的增量。 -## experiments.parallelLoader - - - -- **类型**: `boolean` -- **默认值:** `false` - -开启并行 loader,你需要使用 [`rules[].use.parallel`](/config/module-rules#rulesuseparallel) 手动为各个 loader 分别开启并行模式。开启后,对应的 loader 会被发送到 worker threads 执行。 - -```js title="rspack.config.mjs" -export default { - module: { - rules: [ - { - test: /\.less$/, - use: [ - { - loader: 'less-loader', - parallel: true, - options: { - // loader options - }, - }, - ], - }, - ], - }, - experiments: { - parallelLoader: true, - }, -}; -``` - ## experiments.cache diff --git a/website/docs/zh/config/module-rules.mdx b/website/docs/zh/config/module-rules.mdx index 77bc9a6829b1..b77307a1f315 100644 --- a/website/docs/zh/config/module-rules.mdx +++ b/website/docs/zh/config/module-rules.mdx @@ -764,9 +764,6 @@ export default { }, ], }, - experiments: { - parallelLoader: true, - }, }; ``` @@ -774,7 +771,6 @@ export default { :::tip -- 由于当前功能是实验性特性,只有开启 [experiments.parallelLoader](/config/experiments#experimentsparallelloader) 时该配置才会生效。 - loader 的选项需要满足 [HTML structured clone algorithm](https://nodejs.org/api/worker_threads.html#portpostmessagevalue-transferlist),否则会发送失败。 - 目前 loader 在 worker 中不支持 `LoaderContext._compilation`, `LoaderContext._compiler`, `LoaderContext._module` 上的大多数方法。