Webpack ошибка: конфигурации в разработку неизвестное свойство '


После обновления до последней версии webpack, я вижу эту ошибку:

WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration has an unknown property 'postcss'. These properties are valid: object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry, externals?, loader?, module?, name?, node?, output?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? } For typos: please correct them. For loader options: webpack 2 no longer allows custom properties in configuration. Loaders should be updated to allow passing options via loader options in module.rules.

Вот мой webpack config, показывающий модуль postcss:

module: { loaders: [ // JavaScript / ES6 { test: /.js$/, exclude: /node_modules/, loader: 'babel-loader' }, { test: /.jsx?$/, include: path.resolve(__dirname, '../src/components'), exclude: /node_modules/, loader: 'babel-loader' }, // Sass { test: /.scss$/, include: path.resolve(__dirname, '../src/sass'), exclude: /node_modules/, loader: 'style!css!postcss!sass' }, // CSS { test: /.css$/, loader: 'style!css!postcss' }, // JSON { test: /.json$/, exclude: /node_modules/, loader: 'json-loader' }, // Images // Inline base64 URLs for <=8k images, direct URLs for the rest { test: /.(png|jpg|jpeg|gif|svg)$/, loader: 'url', include: [ path.resolve(__dirname, '../public'), path.resolve(__dirname, '../src/sass') ], exclude: /node_modules/, query: { limit: 8192, name: 'images/[name].[ext]?[hash]' } }, // Fonts { test: /.(woff|woff2|ttf|eot)(?v=d+.d+.d+)?$/, loader: 'url', include: path.resolve(__dirname, '../src/sass'), exclude: /node_modules/, query: { limit: 8192, name: 'fonts/[name].[ext]?[hash]' } } ] }, postcss: function() { return [ autoprefixer({ browsers: ['last 2 versions'] }) ]; }

1 4

1 ответ:

Исправление состоит в том, чтобы убедиться, что autoprefixer включен в верхней части файла, и переместить postcss в раздел plugins :

const autoprefixer = require('autoprefixer');

plugins: [ // Shared code new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: 'vendor.bundle.js', minChunks: Infinity }), new webpack.LoaderOptionsPlugin({ options: { context: __dirname, postcss: [ autoprefixer ] } }) ]