Конфигурация PostCSS и Webpack
Я очень расстроен, потому что не могу найти полезного ресурса по этому вопросу.
Я просто хочу посмотреть мои файлы.css, использовать плагины post css для их преобразования и, наконец, экспортировать их в мою / публичную папку, как я уже делал с моими файлами.jsx
Вот моя конфигурация веб-пакета
const path = require('path');
const webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
entry: path.resolve('src/index.jsx'),
output: {
path: path.resolve('public'),
filename: 'bundle.js'
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
devServer: {
publicPath: "/",
contentBase: "./public"
},
module: {
rules: [
{
test: /\.css$/,
exclude: /node_modules/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
}, {
loader: 'postcss-loader',
options: {
plugins: function() {
return [require('lost'), require('postcss-cssnext'), require('postcss-import')]
}
}
}
]
})
}, {
test: /\.jsx?$/,
use: [
{
loader: 'babel-loader',
options: {
presets: ['es2015', 'react']
}
}
],
exclude: /(node_modules|bower_components)/
}
]
},
plugins: [new ExtractTextPlugin("main.css")]
}
2 ответа
Я предполагаю, что вы используете webpack2
Если вы хотите, чтобы ваш файл CSS выгружался отдельно, вам понадобится ExtractTextPlugin. Вот мой загрузчик CSS, который работает
Я определяю плагины post css прямо в конфиге webpack, потому что тогда он остается в одном месте. Надеюсь это поможет:
var ExtractTextPlugin = require('extract-text-webpack-plugin');
...
...
module.exports = {
...
...
module: {
rules: [
...
...
{
test: /\.css$/,
exclude: /node_modules/,
loader: ExtractTextPlugin.extract(
{ fallback: 'style-loader',
use: [{
loader: 'css-loader',
options: {
modules: true,
localIdentName:'[name]__[local]___[hash:base64:5]'
}
},
{
loader: 'postcss-loader',
options: {
plugins: function() {
return [
require('autoprefixer')
]
}
}
},
]
})
},
}
Возможно, ваши плагины созданы неправильно.
Пытаться
return [require('lost')(), require('postcss-cssnext')(), require('postcss-import')()]
(Обратите внимание на (), чтобы вызвать создание плагина).
Кроме того, вы на самом деле используете import/require(), чтобы включить свой CSS? Если нет, то никакие магические штуки не сорвут ваш css:)