我有一个使用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规则的工作示例,我将非常感激。(如果合适的话,最终的插件/优化设置)
谢谢
1条答案
按热度按时间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中完成。