thread-loader icon indicating copy to clipboard operation
thread-loader copied to clipboard

You forgot to add 'mini-css-extract-plugin' plugin

Open mrdulin opened this issue 1 year ago • 3 comments

  • 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

mrdulin avatar Jun 24 '24 10:06 mrdulin

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,
                    },
                ],
            },
        ],
    },

vietanh74 avatar Jul 04 '24 04:07 vietanh74

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

mrdulin avatar Jul 04 '24 06:07 mrdulin

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.

mrdulin avatar Jul 04 '24 07:07 mrdulin

Close in favor - https://github.com/webpack-contrib/thread-loader/issues/208, fix will be soon

alexander-akait avatar Sep 18 '24 20:09 alexander-akait