Я пытаюсь настроить webpack, чтобы иметь прохождение компиляции, где он сканирует все файлы css в одном дереве файлов, а затем генерирует файлы css со всеми связанными стилями, автоматически скомпонованными и сведенными к минимуму.ExtractTextPlugin и postCSS - autoprefixer не работает
Я не могу заставить плагин autoprefixer работать.
Вот соответствующая WebPack конфигурации часть:
const webpack = require('webpack')
const path = require('path')
const glob = require('glob')
const ExtractTextPlugin = require('extract-text-webpack-plugin');
// postCSS plugins
const autoprefixer = require('autoprefixer')
module.exports = [
{
// another compilation pass
},
{
name: 'static-css',
entry: {
vendor: glob.sync(path.join(__dirname, 'assets/stylesheets/vendor/**/*.css')),
styles: glob.sync(path.join(__dirname, 'assets/stylesheets/src/**/*.css'))
},
devtool: 'source-map',
output: {
path: path.join(__dirname, 'assets/stylesheets/build/'),
filename: 'bundle.js',
},
module: {
loaders: [
// css loader for custom css
{
test: /\.css$/,
include: path.join(__dirname, 'assets/stylesheets/src'),
loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader')
},
// css loader for vendor css
{
test: /\.css$/,
include: path.join(__dirname, 'assets/stylesheets/vendor'),
loader: 'style-loader!css-loader'
},
// other loaders for images, fonts, and svgs
{
test: /\.png$/,
loader: 'url-loader?limit=100000'
},
{
test: /\.jpg$/,
loader: 'file-loader'
},
{
test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=application/font-woff'
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=application/octet-stream'
},
{
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
loader: 'file'
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10000&mimetype=image/svg+xml'
}
],
postcss: function() {
return [
autoprefixer
]
}
},
plugins: [
// extract css in a .css file
new ExtractTextPlugin('[name].css')
]
}
];
Когда я бегу Webpack, я получаю все файлы, сжатые в bundle.js и правильно распакованы, в отдельном файле styles.css
. Но префиксы поставщика не применяются.
Я использую этот класс, чтобы проверить префиксы:
.autoprefixer-test {
display: flex;
transition: all .5s;
background: linear-gradient(to bottom, white, black);
user-select: none;
}
Я попытался изменить вызов ExtractTextPlugin.extract как ExtractTextPlugin.extract('style-loader', ['css-loader', 'postcss-loader'])
, как показано в других постах, но это не помогает ,
Любые идеи?
Бог, я не могу поверить, что это как-то просто, как вариант postcss не установлен на нужном уровне .. . Спасибо друг. Также спасибо за другие мысли, а не заимствование какого-либо css еще, но, безусловно, пригодится в какой-то момент. –
Большое вам спасибо за объяснение всего этого. – jrobson153