Настроил webpack + postcss/autoprefixer/cssnano на плагине mini-css-extract-plugin
, выдержка из webpack.config.js
:
{
test: /\.((s[ac]|c)ss)$/,
use: [
plugins.extractCSS.loader,
{
loader: 'css-loader',
options: {
sourceMap: !isProduction
}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
sourceMap: !isProduction,
plugins: (() => {
return isProduction ? [
require('autoprefixer')(),
require('cssnano')({
preset: ['default', {
minifySelectors: false
}]
})
] : []
})()
}
},
{
loader: 'sass-loader',
options: {
outputStyle: 'expanded',
sourceMap: !isProduction
}
}
]
}
SCSS на входе:
.test_1 {
color: red;
}
.test_2 {
color: green;
}
body {
.test_3 {
color: red;
}
.test_4 {
color: red;
}
.test_5 {
color: green;
}
}
CSS на выходе:
.test_1 {
color: red
}
.test_2 {
color: green
}
body .test_3, body .test_4 {
color: red
}
body .test_5 {
color: green
}
Но если практично посмотреть на классы и их свойства, то можно оптимизировать и их, например так:
.test_1, body .test_3, body .test_4 {
color: red
}
.test_2, body .test_5, {
color: green
}
Вопросы:
То что вы хотите сделать при помощи cssnano
называется mergeidents
.
Судя по документации, вам нужна advanced версия.
Если вы хотите оптимизировать CSS для скорости загрузки для production
то лучше использовать весь арсенал оптимизации (удаление пробелов и табов, сведение селекторов и свойств, конвертация gzip). Если же это компиляция для dev
окружения то данная оптимизация будет создавать небольшой дискомфорт при работе из отладчика браузера.
Эта оптимизация включена по умолчанию в advanced
версию
Не понимаю почему выводит сообщение "не найден путь", когда данная папка существует и путь верный
Я заметил что файлы аналитики js, которые подключают метрики, не минимизированный код и они веся достаточно много, есть ли возможность их как-то...