上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: steven026 - 

webpack5 打包时压缩资源模块css

[复制链接]
  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2023-7-6 13:21:01 | 显示全部楼层 | 阅读模式

    原理

    通常开发需求下,webpack5一般直接通过CssMinimizerWebpackPluginMiniCssExtractPlugin插件对css文件进行抽离、压缩(最小化)、打包,但这2个插件均无法对资源模块css进行压缩,故需要在文件预处理阶段使用loader处理资源模块css。

    而最新版本常用的2个css loader:style-loadercss-loader均无压缩功能,因此需要使用postcss-loader及额外第三方插件对资源模块css进行压缩。(这里选用CssMinimizerWebpackPlugin所依赖的插件cssnano

    方法

    1.安装loader依赖

    npm i -D cssnano postcss postcss-loader

    2.设置webpack.config.js

    module: {
      rules: [
        {
          test: /\.css$/,
          use: [
            'css-loader',
            {
              loader: 'postcss-loader',
              options: {
                postcssOptions: {
                  plugins: [
                    [
                      'cssnano',
                      {}, //插件额外可选配置
                    ],
                  ],
                },
              },
            },
          ],
        },
      ],
    },
    

    完结撒花

    辣鸡webpack 毁我青春

    参考

    https://www.webpackjs.com/loaders/postcss-loader/
    https://github.com/webpack-contrib/css-loader/releases/tag/v1.0.0
    https://zhuanlan.zhihu.com/p/92468484
    https://blog.csdn.net/u012436704/article/details/101384180

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2023-7-6 14:45:47 | 显示全部楼层
    可以参考这个用法,输出各个包的占用大小:https://github.com/scriptscat/sc ... webpack.prod.ts#L29

    参考这个用法分割:https://github.com/scriptscat/sc ... pack.config.ts#L161

    但是分割可能会导致其它问题
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表