Приветствую!
Собираю проект через webpack 4 и на выходе получаю "полу-оптимизированный" css.
Выдержка из webpack.config.js{
test: /\.((s[ac]|c)ss)$/,
use: [
PLUGINS.mini_css_extract_plugin.loader,
{
loader: 'css-loader',
options: {
sourceMap: !isProduction
}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
sourceMap: !isProduction,
plugins: (() => {
return isProduction ? [
require('autoprefixer')({
browsers: ['last 2 versions']
}),
require('cssnano')({
preset: 'default'
}),
require("css-mqpacker")
] : []
})()
}
},
{
loader: 'sass-loader',
options: {
outputStyle: 'expanded',
sourceMap: !isProduction
}
},
]
},
1. Перед сборкой проекта имею следующий scss код:
.class_1 {
width: 1px;
}
.class_2 {
width: 1px;
}
.class_3 {
width: 2px;
}
2. После сборки на выходе имею следующее:
.class_1, .class_2 {
width: 1px
}
.class_3 {
width: 2px
}
Вроде бы все замечательно и оптимизация классов произошла, НО! Пробуем изменить последовательность классов в scss и запустить сборку заново...
3. Перед сборкой проекта имею следующий scss код (поменял местами class_2 и class_3):
.class_1 {
width: 1px;
}
.class_3 {
width: 2px;
}
.class_2 {
width: 1px;
}
4. После сборки на выходе имею следующее:
.class_1 {
width: 1px
}
.class_3 {
width: 2px
}
.class_2 {
width: 1px
}
Хотелось бы оптимизировать все классы, а не только те, которые идут исключительно друг за другом.
Подскажите плагин (и его настройки), чтобы объединять названия классов, если у них одинаковые стили?
Спасибо!
UPD:
В связи с тем, что многих будоражит width: 2px; - заменим его на color: red;
На входе:
.class_1 {
width: 1px;
}
.class_3 {
color: red;
}
.class_2 {
width: 1px;
}
На выходе:
.class_1 {
width: 1px
}
.class_3 {
color: red
}
.class_2 {
width: 1px
}