
Vue项目Webpack4打包:避免mini-css-extract-plugin生成空CSS文件
使用Vue、Webpack4和mini-css-extract-plugin时,按需加载模式下可能会出现空CSS文件的问题。本文提供一种解决方案,通过修改插件源码来解决这个问题。
方案:修改mini-css-extract-plugin源码
- 找到
mini-css-extract-plugin的源码文件(路径:node_modules/mini-css-extract-plugin/dist/cjs.js)。 - 在处理
chunk.modulesIterable的逻辑中,添加代码过滤空模块:
const renderedModules = Array.from(chunk.modulesIterable).filter(module => module.type === MODULE_TYPE && module.content);
原理说明:
立即学习“前端免费学习笔记(深入)”;
Vue-loader将.vue文件转换为包含样式的import语句,即使样式为空,也会生成相应的代码。Sass-loader和Css-loader会解析这些样式,但不会移除无效代码。通过修改mini-css-extract-plugin源码,我们可以过滤掉这些内容为空的模块,从而避免生成空CSS文件。
注意事项:
- 此方法仅适用于按需加载模式。
- Vue-loader无法过滤掉注释或其他无效代码,因此生成的CSS文件可能仍然包含一些冗余内容。










