我的 webpack 配置中有带有 cssnano 插件的 postcss。这是配置的一部分:
{
test: /\.s[ac]ss$/i,
use: [MiniCssExtractPlugin.loader, "css-loader", postcssWithCssnanoLoader, "sass-loader"]
},
我发现 postcss 转换适用于每个 scss/css 模块。例如:
//file1.scss
.some-class{
width: 100px;
}
.some-class{
height: 100px;
}
//final css
.some-class {
width: 100px;
height: 100px;
}
但是如果还有一个 scss 文件:
//file2.scss
.some-class{
background: black;
}
.some-class{
color: white;
}
//final css
.some-class {
width: 100px;
height: 100px;
}
.some-class {
background: black;
color: white;
}
由于配置和 webpack 的工作方式,这是有道理的。但是如何将 postcss 转换应用于整个 CSS 包?我想要以下结果:
//final css
.some-class {
width: 100px;
height: 100px;
background: black;
color: white;
}
我已经尝试过了(有点成功的希望):
{
test: /\.s[ac]ss$/i,
use: [
MiniCssExtractPlugin.loader,
postcssWithCssnanoLoader,
{ loader: MiniCssExtractPlugin.loader, options: { emit: false } },
"css-loader",
"sass-loader"
]
}
显然,这是行不通的。