Рекомендуется сделать postcss-import
первым плагином в вашем списке, когда вы определяете плагины для postcss в webpack. Поскольку postcss-import
просто встраивает @import
в начало файла, к нему будет применяться любой плагин postcss, определенный впоследствии.
Пример:
(Для примера я предполагаю, что вы используете файл postcss.config.js
, та же логика применяется, если вы используете массив для плагинов в формате webpack 1)
// Header.css
@import 'button.css';
.foo {
font-size: 3rem;
transform:translateY(-10px);
}
// Button.css
.bar {
transform:translateX(20px);
}
Если плагин импорта находится за автопрефиксером, он сначала применит плагин автопрефиксера к файлу, а затем импортирует файл @import
. Таким образом, к тому времени, когда файл будет импортирован, префикс уже будет выполнен, вывод будет таким:
// postcss.config.js
module.exports = {
plugins: {
'autoprefixer': {},
'postcss-import': {}
},
};
// output.css
.bar {
transform: translateX(20px); // Prefixing hasn't happened on the imported file
}
.foo {
font-size: 3rem;
transform:translateY(-10px);
-webkit-transform:translateY(-10px); // original file has been prefixed though
}
Однако, если вы поместите импорт первым, он встроит импортированный файл, а затем выполнит автопрефикс, это означает, что и импортированный, и исходный файл будут иметь автопрефикс:
// postcss.config.js
module.exports = {
plugins: {
'postcss-import': {},
'autoprefixer': {}
},
};
// output.css
.bar {
transform: translateX(20px);
-webkit-transform:translateX(20px); // Also prefixed now
}
.foo {
font-size: 3rem;
transform:translateY(-10px);
-webkit-transform:translateY(-10px);
}
Таким образом, это означает, что вам не нужно снова добавлять плагины в опции плагина postcss-import
.
person
siebe van dijck
schedule
02.03.2017