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` 上的大多数方法。