mini-css-extract-plugin(style-loader)、optimize-css-assets-webpack-plugin

159 阅读1分钟
  1. css-loader:将js中的css内容解析
  2. style-loader:最终将css样式通过标签方式注入到页面中。

css-loader处理之后CSS内容还是存储在JS文件中,MiniCssExtractPlugin 插件可以将CSS内容从打包结果中提取出来,存放到文件中。因为提取后生成了css文件,所以就不需要标签,而是直接通过的方式引入。所以使用MiniCssExtractPlugin,就不需要style-loader,而是使用插件提供的loader实现通过标签的方式注入。

image.png

如果样式内容不是很多的话,提取到单个文件的效果不是很好。

建议CSS文件超过150kb左右,才考虑提取到单个文件中。

否则css嵌入到代码中,减少一次请求,效果可能更好。

OptimizeCssAssetsWebpackPlugin 压缩输出的css文件

使用MiniCssExtractPlugin后,样式就被提取到单独的css文件中了。 webpack在production模式下,会自动压缩优化打包的结果。 但是单独提取的css文件并没有被压缩。

这是因为webpack内置的压缩插件,仅仅支持JS文件的压缩。 对于其他类型的文件压缩,都需要额外的插件支持。

webpack推荐使用「optimize-css-assets-webpack-plugin」插件压缩样式文件。

image.png