diff --git a/src/index.js b/src/index.js index 935d8203..0cd15048 100644 --- a/src/index.js +++ b/src/index.js @@ -426,6 +426,9 @@ class ExtractCssChunks { this.traverseDepthFirst(rule, (node) => { if (node && node.use && Array.isArray(node.use)) { const isMiniCss = node.use.some((l) => { + if (typeof l === 'function') { + return false; + } const needle = l.loader || l; return needle.includes(pluginName); }); diff --git a/test/cases/function-loader/expected/main.css b/test/cases/function-loader/expected/main.css new file mode 100644 index 00000000..aea53e43 --- /dev/null +++ b/test/cases/function-loader/expected/main.css @@ -0,0 +1,2 @@ +body { background: red; } + diff --git a/test/cases/function-loader/index.js b/test/cases/function-loader/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/function-loader/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/function-loader/style.css b/test/cases/function-loader/style.css new file mode 100644 index 00000000..31fc5b8a --- /dev/null +++ b/test/cases/function-loader/style.css @@ -0,0 +1 @@ +body { background: red; } diff --git a/test/cases/function-loader/webpack.config.js b/test/cases/function-loader/webpack.config.js new file mode 100644 index 00000000..0137a9e4 --- /dev/null +++ b/test/cases/function-loader/webpack.config.js @@ -0,0 +1,21 @@ +const Self = require('../../../'); + +module.exports = { + entry: './index.js', + module: { + rules: [ + { + test: /\.css$/, + use: [ + () => ({ loader: 'css-loader' }), + ], + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + hot: true, + }), + ], +};