Webpack在mini-css-extract-plugin加载器上出错



当我尝试使用mini-css-extract-plugin加载器时,webpack返回以下错误:

/node_modules/mini-css-extract-plugin/dist/loader.js:122
for (const asset of compilation.getAssets()) {
^
TypeError: compilation.getAssets(...) is not a function or its return value is not iterable

我需要插件和调用加载器在我的prod配置文件:

const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const path = require("path");
const common = require("./webpack.common");
const merge = require("webpack-merge");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = merge(common, {
mode: "production",
output: {
filename: "[name].[contentHash].bundle.js",
path: path.resolve(__dirname, "dist")
},
plugins: [
new MiniCssExtractPlugin({filename: "[name].[contentHash].css"}), 
new CleanWebpackPlugin()
],
module: {
rules: [
{
test: /.scss$/,
use: [
MiniCssExtractPlugin.loader, //3. Extract css into files
"css-loader", //2. Turns css into commonjs
"sass-loader" //1. Turns sass into css
],
},
],
},
});

我把它包含在我的devDependencies:

"mini-css-extract-plugin": "^1.3.6",

但我仍然收到错误。我没有在[文档][1]中找到任何指示可能发生的事情的内容。我在这段代码中忽略了什么吗?

为什么loader.js中的方法会被标记为"不是函数"?[1]: https://www.npmjs.com/package/mini-css-extract-plugin

我知道getAssets仅在webpack 4.40.0之后可用https://webpack.js.org/api/compilation-object/#getassets

你可以试试:

  1. webpack版本至少更新到4.40.0
  2. min-css-extract-plugin降级为1.3.0

我尝试了第二个,并为我工作,但升级webpack也应该工作。

相关内容

最新更新