mini-css-extract-plugin将多个css chunk合并成一个css文件出问题

webpack装的mini-css-extract-plugin将多个csschunk合并成一个css文件出问题。github上查到答案,但是仍然无效:constMini... webpack装的mini-css-extract-plugin将多个css chunk合并成一个css文件出问题。github上查到答案,但是仍然无效:
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /\.css$/,
chunks: 'all',
enforce: true
}
}
}
},
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css",
})
],
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader"
]
}
]
}
}

是想把css都提取出来放到main.css中。name: 'styles',这里改成main也不行。最后只能用回extract-text-webpack-plugin 其实就想实现类似extract-text-webpack-plugin中的allChunks:true功能。
plugins:[
new ExtractTextPlugin({
filename:'main.css',//重命名提取后的css文件
allChunks: true //有了chunk,需要在此配置
}),
]

有大佬知道我这问题出在哪儿吗?
展开
 我来答
suieucn
2018-08-27
知道答主
回答量:14
采纳率:75%
帮助的人:5.4万
展开全部

文档里明确给出了输出到1个文件的配置示例

const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
  optimization: {
    splitChunks: {
      cacheGroups: {
        styles: {
          name: 'styles',
          test: /\.css$/,
          chunks: 'all',
          enforce: true
        }
      }
    }
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: "[name].css",
    })
  ],
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          "css-loader"
        ]
      }
    ]
  }
}

你的写法和示例几乎完全一样。问题在于你要改文件名时造成的问题。你修改了cacheGroup的name,那个name其实是cacheGroup的ID,和CSS没关系。所以你要修改的是plugins下的filename

  plugins: [
    new MiniCssExtractPlugin({
      filename: "[name].css", // 这里修改成filename: "main.css"
    })
  ],
更多追问追答
追问
这里其实我也改了,但还是不行。。现在已经换用,extract-text-webpack-plugin了。但是mini-css-extract-plugin注释还在。能帮忙看下吗。 代码太长不让发。 放runjs上了。view-source:https://sandbox.runjs.cn/show/qs0vwgep
追答
const MiniCssExtractPlugin = require( "mini-css-extract-plugin" );
const VueLoaderPlugin      = require( "vue-loader/lib/plugin" );

module.exports = {
  mode : "production",
  module : {
    rules : [
      {
        resource : {
          test : /\.css$/
        },
        use : [
          {
            loader : MiniCssExtractPlugin.loader
          },
          {
            loader : "css-loader"
          }
        ]
      },
      {
        resource : {
          test : /\.vue$/
        },
        use : [
          {
            loader : "vue-loader"
          }
        ]
      }
    ]
  },
  output : {
    publicPath : "/dist/"
  },
  plugins : [
    new MiniCssExtractPlugin,
    new VueLoaderPlugin
  ]
};

如果还有问题,请说明详细的使用过程。

匿名用户
2021-05-06
展开全部
我也有此困惑,怎么解决的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式