You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webpack5单入口搭配splitChunks、MiniCssExtractPlugin拆分独立vendors.css

解决方案

1. 调整MiniCssExtractPlugin配置

首先要保证插件的输出文件名规则同时覆盖入口chunk和拆分出来的公共chunk,避免拆分出的样式文件使用默认的ID命名:

const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  // 其余配置省略
  plugins: [
    new MiniCssExtractPlugin({
      filename: '[name].css',
      chunkFilename: '[name].css',
    })
  ]
}

2. 修改splitChunks缓存组规则

默认splitChunks会受最小体积、最小引用数等阈值限制,且内置的默认缓存组可能和自定义规则冲突,调整配置如下即可强制拆分出你需要的4个产物:

module.exports = {
  // 其余配置省略
  optimization: {
    splitChunks: {
      // 关闭内置默认缓存组,避免生成多余产物
      default: false,
      defaultVendors: false,
      cacheGroups: {
        vendors: {
          test: /[\\/]node_modules[\\/]/,
          name: 'vendors',
          chunks: 'all',
          priority: 100,
          // 强制拆分,跳过minSize、minChunks等阈值限制
          enforce: true,
        },
        index: {
          // 替换为你项目业务代码对应的目录匹配规则
          test: path.resolve(conf.SRC_ROOT),
          name: 'index',
          chunks: 'all',
          priority: 10,
          enforce: true,
        }
      }
    }
  }
}

配置完成后重新构建,即可得到固定的index.js、index.css、vendors.js、vendors.css四个产物,完全匹配你需要的代码拆分规则。

内容的提问来源于stack exchange,提问作者szegheo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:06:03