Настройка Autoprefixer под Webpack
Autoprefixer - это плагин PostCSS для добавления вендорных префиксов на основе данных сервиса Can I Use. Благодаря этому плагину, создание кроссбраузерного CSS стало проще. Не нужно добавлять ‘мусорный’ код, так как PostCSS является постобработчиком и добавляет уже, непосредственно, при сборке web-приложения.
Это будет небольшой заметкой как быстро настроить Autoprefixer для Webpack 2.
1. Установка
Для начала необходимо установить postcss-loader, который позволяет использовать PostCSS в экосистеме Webpack, без лишних “телодвижений” :
npm install postcss-loader
Также устанавливаем сам плагин:
npm install autoprefixer
2. Конфигурация
Импортируем в файл webpack-конфигурации:
const autoprefixer = require('autoprefixer');
И правим в разделе module.rules.
Добавляем правило для .scss или .css типов:
{
loader: 'postcss-loader',
options: {
plugins: [
autoprefixer({
browsers:['ie >= 8', 'last 4 version']
})
],
sourceMap: true
}
},
Важно чтобы оно было расположено после style-loader, css-loader и до sass-loader (если таковой имеется).
В опции postcss-loader добавляем плагин, у него же в конструктор передаются опции. Опции можно посмотреть в официальном мануале. Большинство из них включены по умолчанию, можно их опционально отключить.
Мы передадим массив браузеров, которые мы хотим использовать. Autoprefixer поддерживает выражения Browserlist, такие как: 'ie >= 8', 'last 4 version'.
В конечном счете, для .scss были добавлены следующие правила:
module: {
rules: [
{
test: /\.scss$/,
use: [
{
loader: 'style-loader'
},
{
loader: 'css-loader',
options: {
sourceMap: true
}
},
{
loader: 'postcss-loader',
options: {
plugins: [
autoprefixer({
browsers:['ie >= 8', 'last 4 version']
})
],
sourceMap: true
}
},
{
loader: 'sass-loader',
options: {
includePaths: [
helpers.root('src', 'styles', 'global'),
],
sourceMap: true
}
}
],
},
]
},
Плюсом такого подхода является скорость настройки и отсутствие необходимости создавать специальные файлы конфигурации для PostCSS.