thread-loader
thread-loader copied to clipboard
You forgot to add 'mini-css-extract-plugin' plugin
- Operating System: win11
- Node Version: v16.20.1
- NPM Version: 8.19.4
- webpack Version: ^5.80.0
- thread-loader Version: ^4.0.2
Expected Behavior
Should work with mini-css-extract-plugin
Actual Behavior
> cross-env NODE_ENV=production webpack
assets by status 958 bytes [cached] 1 asset
runtime modules 663 bytes 3 modules
cacheable modules 113 bytes
./src/index.js 74 bytes [built] [code generated]
./src/styles.css 39 bytes [built] [code generated] [1 error]
ERROR in ./src/styles.css
Module build failed (from ./node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 0)
You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started
at Object.pitch (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\mini-css-extract-plugin\dist\loader.js:89:14)
@ ./src/index.js 1:0-34 2:28-34
webpack 5.88.2 compiled with 1 error in 373 ms
Code
// webpack.config.js
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const os = require('os');
const threadPoolOptions = {
workers: os.cpus().length - 1,
};
const isProd = process.env.NODE_ENV === 'production';
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
clean: true,
},
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: 'thread-loader',
options: threadPoolOptions,
},
isProd ? MiniCssExtractPlugin.loader : 'style-loader',
{
loader: 'css-loader',
options: {
modules: { localIdentName: '[path][local]' },
},
},
],
},
],
},
plugins: [new MiniCssExtractPlugin()],
};
index.js:
import styles from './styles.css';
console.log('🚀 ~ styles:', styles);
styles.css:
.f12 {
font-size: 12px;
}
How Do We Reproduce?
Run npm run build script
you must change order of the loader
module: {
rules: [
{
test: /\.css$/i,
use: [
isProd ? MiniCssExtractPlugin.loader : 'style-loader',
{
loader: 'css-loader',
options: {
modules: { localIdentName: '[path][local]' },
},
},
{
loader: 'thread-loader',
options: threadPoolOptions,
},
],
},
],
},
I followed this example, it still does not work.
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const threadLoader = require('thread-loader');
const os = require('os');
const threadPoolOptions = {
workers: os.cpus().length - 1,
};
threadLoader.warmup(threadPoolOptions, ['css-loader']);
const isProd = process.env.NODE_ENV === 'production';
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
clean: true,
},
module: {
rules: [
{
test: /\.css$/,
use: [
isProd ? MiniCssExtractPlugin.loader : 'style-loader',
{
loader: 'thread-loader',
options: threadPoolOptions,
},
{
loader: 'css-loader',
options: {
modules: { localIdentName: '[path][local]' },
},
},
],
},
],
},
plugins: [new MiniCssExtractPlugin()],
};
Output:
$ npm run build
> build
> cross-env NODE_ENV=production webpack
assets by status 15.1 KiB [cached] 1 asset
runtime modules 663 bytes 3 modules
orphan modules 39 bytes [orphan] 1 module
cacheable modules 113 bytes
./src/index.js 74 bytes [built] [code generated]
./src/styles.css 39 bytes [built] [code generated] [1 error]
ERROR in ./src/styles.css
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 0)
Cannot read properties of undefined (reading 'util')
at PoolWorker.fromErrorObj (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:302:12)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:184:29
at mapSeries (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3625:14)
at PoolWorker.onWorkerMessage (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:148:34)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:124:14
at Socket.onChunk (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\readBuffer.js:32:9)
at Socket.emit (node:events:513:28)
at Socket.Readable.read (node:internal/streams/readable:527:10)
at Socket.read (node:net:729:39)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\src\styles.css:1:1
at defaultGetLocalIdent (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\utils.js:287:50)
at generateScopedName (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\utils.js:612:24)
at exportScopedName (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:111:28)
at localizeNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:142:22)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:138:45
at Array.map (<anonymous>)
at Selector.map (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-selector-parser\dist\selectors\container.js:269:23)
at localizeNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:138:31)
at traverseNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:182:32)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:205:33
at tryRunOrWebpackError (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\HookWebpackError.js:88:9)
at __webpack_require_module__ (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5067:12)
at __webpack_require__ (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5024:18)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5095:20
at symbolIterator (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3485:9)
at done (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3527:9)
at Hook.eval [as callAsync] (eval at create (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\tapable\lib\Hook.js:18:14)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5002:43
at symbolIterator (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3482:9)
-- inner error --
Error: Module build failed (from ./node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 0)
Cannot read properties of undefined (reading 'util')
at PoolWorker.fromErrorObj (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:302:12)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:184:29
at mapSeries (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3625:14)
at PoolWorker.onWorkerMessage (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:148:34)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:124:14
at Socket.onChunk (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\readBuffer.js:32:9)
at Socket.emit (node:events:513:28)
at Socket.Readable.read (node:internal/streams/readable:527:10)
at Socket.read (node:net:729:39)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\src\styles.css:1:1
at defaultGetLocalIdent (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\utils.js:287:50)
at generateScopedName (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\utils.js:612:24)
at exportScopedName (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:111:28)
at localizeNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:142:22)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:138:45
at Array.map (<anonymous>)
at Selector.map (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-selector-parser\dist\selectors\container.js:269:23)
at localizeNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:138:31)
at traverseNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:182:32)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:205:33
at Object.<anonymous> (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\cjs.js??ruleSet[1].rules[0].use[1]!D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\cjs.js??ruleSet[1].rules[0].use[2]!D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\src\styles.css:1:7)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\javascript\JavascriptModulesPlugin.js:452:10
at Hook.eval [as call] (eval at create (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:7:1)
at Hook.CALL_DELEGATE [as _call] (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\tapable\lib\Hook.js:14:14)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5069:39
at tryRunOrWebpackError (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\HookWebpackError.js:83:7)
at __webpack_require_module__ (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5067:12)
at __webpack_require__ (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5024:18)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\webpack\lib\Compilation.js:5095:20
at symbolIterator (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3485:9)
Generated code for D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\cjs.js??ruleSet[1].rules[0].use[1]!D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\cjs.js??ruleSet[1].rules[0].use[2]!D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\src\styles.css
1 | throw new Error("Module build failed (from ./node_modules/thread-loader/dist/cjs.js):\nThread Loader (Worker 0)\nCannot read properties of undefined (reading 'util')\n at PoolWorker.fromErrorObj (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\thread-loader\\dist\\WorkerPool.js:302:12)\n at D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\thread-loader\\dist\\WorkerPool.js:184:29\n at mapSeries (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\neo-async\\async.js:3625:14)\n at PoolWorker.onWorkerMessage (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\thread-loader\\dist\\WorkerPool.js:148:34)\n at D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\thread-loader\\dist\\WorkerPool.js:124:14\n at Socket.onChunk (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\thread-loader\\dist\\readBuffer.js:32:9)\n at Socket.emit (node:events:513:28)\n at Socket.Readable.read (node:internal/streams/readable:527:10)\n at Socket.read (node:net:729:39)\n at D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\src\\styles.css:1:1\n at defaultGetLocalIdent (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\css-loader\\dist\\utils.js:287:50)\n at generateScopedName (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\css-loader\\dist\\utils.js:612:24)\n at exportScopedName (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-modules-scope\\src\\index.js:111:28)\n at localizeNode (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-modules-scope\\src\\index.js:142:22)\n at D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-modules-scope\\src\\index.js:138:45\n at Array.map (<anonymous>)\n at Selector.map (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-selector-parser\\dist\\selectors\\container.js:269:23)\n at localizeNode (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-modules-scope\\src\\index.js:138:31)\n at traverseNode (D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-modules-scope\\src\\index.js:182:32)\n at D:\\workspace\\mrdulin\\webpack-samples\\webpack-v5\\examples\\thead-loader-and-mini-css-extract-plugin-issue\\node_modules\\postcss-modules-scope\\src\\index.js:205:33");
@ ./src/index.js 1:0-34 2:28-34
ERROR in ./src/styles.css (./src/styles.css.webpack[javascript/auto]!=!./node_modules/thread-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/css-loader/dist/cjs.js??ruleSet[1]Module build failed (from ./node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 0)
Cannot read properties of undefined (reading 'util')
at PoolWorker.fromErrorObj (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:302:12)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:184:29
at mapSeries (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\neo-async\async.js:3625:14)
at PoolWorker.onWorkerMessage (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:148:34)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\WorkerPool.js:124:14
at Socket.onChunk (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\thread-loader\dist\readBuffer.js:32:9)
at Socket.emit (node:events:513:28)
at Socket.Readable.read (node:internal/streams/readable:527:10)
at Socket.read (node:net:729:39)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\src\styles.css:1:1
at defaultGetLocalIdent (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\utils.js:287:50)
at generateScopedName (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\css-loader\dist\utils.js:612:24)
at exportScopedName (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:111:28)
at localizeNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:142:22)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:138:45
at Array.map (<anonymous>)
at Selector.map (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-selector-parser\dist\selectors\container.js:269:23)
at localizeNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:138:31)
at traverseNode (D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:182:32)
at D:\workspace\mrdulin\webpack-samples\webpack-v5\examples\thead-loader-and-mini-css-extract-plugin-issue\node_modules\postcss-modules-scope\src\index.js:205:33
@ ./src/styles.css
@ ./src/index.js 1:0-34 2:28-34
webpack 5.88.2 compiled with 2 errors in 429 ms
you must change order of the loader
module: { rules: [ { test: /\.css$/i, use: [ isProd ? MiniCssExtractPlugin.loader : 'style-loader', { loader: 'css-loader', options: { modules: { localIdentName: '[path][local]' }, }, }, { loader: 'thread-loader', options: threadPoolOptions, }, ], }, ], },
Th thread-loader should be put in front of other loaders.
Put this loader in front of other loaders. The following loaders run in a worker pool.
I am not sure if I hit the limits of thread-loader:
Loaders running in a worker pool are limited. Examples:
Loaders cannot emit files. Loaders cannot use custom loader API (i. e. by plugins). Loaders cannot access the webpack options.
Close in favor - https://github.com/webpack-contrib/thread-loader/issues/208, fix will be soon