如何压缩webpack包中的内联css

vhmi4jdf  于 2023-02-12  发布在  Webpack
关注(0)|答案(1)|浏览(158)

我有一个使用vanilla webcomponents的SPA,我正在努力压缩js webpack输出中的内联css,下面是我的webpack配置的模块部分:

module: {
  rules: [
    {
      test: /\.html$/i,
      loader: "html-loader",
      exclude: path.resolve(__dirname, "./src/index.html")
    },
    {
      test: /\.css$/i,
      exclude: /node_modules/,
      loader: 'css-loader'
    }
  ],
}

在我的组件中,我像这样导入css:

import css from "./entityPage.css";

在我的组件css中,例如 ./entityPage.css,我这样称呼“外部css

@import "../../style.css";

以下是webpack包输出中内联css的摘录:

c.push([e.id,"#h2puIrptVrtsTvV8FGBM{\r\n    width: 40%;\r\n    min-width: 614px; /*48 x the character w with font-size 1rem ;) */\r\n    border: solid 1px black;\r\n\r\n}\r\n\r\n#eKOgREy00yPONhrgY8Zg{\r\n    font-weight: bold;\r\n

如图所示,空格、行移甚至注解都保留了下来。
我试过mini-css-extract-plugin,css-minimizer-webpack-plugin,postcss-loader的多种组合,但没有成功,所以如果能提供一个在webpack配置中设置css规则的工作示例,我将非常感激。(如果合适的话,最终的插件/优化设置)
谢谢

zpqajqem

zpqajqem1#

看看CSSO(https://github.com/css/csso)。你可以把它和Webpack一起使用。那里有一些关于如何用Webpack设置它的文档。
另一种方法是让IDE自动编译此文件。
我所做的是在SCSS中编码-当我改变文件时,它会自动编译成CSS。这是在PHPSorm文件监视器中设置的。PHPSorm检测CSS中的外部变化(因为它是从SCSS生成的),并应用自动前缀和CSSO优化器来最小化CSS。
我还制作了自己的CLI工具,自动将CSS编译为原生JavaScript模块,以获得更好的性能和更快的编译速度-因此我不需要Webpack来完成此操作。https://www.npmjs.com/package/csshtml-module
这对于Webpack也应该很好的工作,因为最终的结果是原生的JS/TS。而且你也可以从SCSS编译和JS库之外的优化中获益。
类似的方法可以在VSCode中完成,也可能在其他IDE中完成。

相关问题