Используйте плагины extractTextPlugin и postCss в Webpack 2.

Я перехожу с webpack v1 на v2. Я следил за официальным документом, чтобы обновить webpack.config.js:

...
module: {
    rules: [
        {
            test: /\.css$/,
            use: extractTextPlugin.extract({
                fallback: 'style-loader',
                use: [
                    'css-loader?modules&localIdentName=[path][name]_[local]--[hash:base64:8]',
                    'postcss-loader'
                ],
            }),
            exclude: [...]
        },
        {
            test: /\.css$/,
            use: extractTextPlugin.extract({
                fallback: 'style-loader',
                use: 'css-loader',
            }),
            include: [...]
        }
    ]
},
...
/**
 * postcss: [
 *   nested(),
 *   autoprefixer(),
 *   values
 * ]
 */

Моя проблема - плагины postcss (вложенные, автопрефиксер, значения). Webpack 2 больше не поддерживает настраиваемое свойство и предлагает использовать options.

Я пробовал options и plugins: () => [nested, autoprefixer, values], но не могу заставить это работать.

Как правильно это сделать? Спасибо.


person Brick Yang    schedule 06.03.2017    source источник


Ответы (1)


Рекомендуется использовать файл postcss.config.js, который экспортирует объект с параметрами (см. использование Postcss). Ваша конфигурация будет выглядеть так (без операторов импорта):

module.exports = {
  plugins: [
    nested(),
    autoprefixer(),
    values
  ]
}

Но если вы хотите, вы можете указать это непосредственно в конфигурации веб-пакета (как показано в Postcss options< /а>):

{
  test: /\.css$/,
  use: extractTextPlugin.extract({
    fallback: 'style-loader',
    use: [
      'css-loader?modules&localIdentName=[path][name]_[local]--[hash:base64:8]',
      {
        loader: 'postcss-loader',
        options: {
          plugins: () => [nested(), autoprefixer(), values]
        }
      }
    ]
  })
  exclude: [...]
},

Обратите внимание, что параметры находятся в самом загрузчике, а не во всем правиле.

person Michael Jungo    schedule 06.03.2017