1

我正在将一个项目从 webpack 1 升级到 2,并且看到一些奇怪的行为,postcss-cssnext其中一些 css 下一个功能,最显着color()的功能和我的所有@media查询都不再工作了。

我使用 webpack 2 的 webpack 配置如下所示。我在这里做错了什么?

{ 
  test: /\.css$/,
  use: [
    { 
      loader: 'style-loader' 
    },
    {
      loader: 'css-loader',
      options: {
        localIndentName: 'localIdentName=[name]__[local]___[hash:base64:5]',
        sourceMap: true,
        modules: true,
        importLoaders: 1
      }
    },
    {
      loader: 'postcss-loader',
      options: {
        plugins: [
          postcssImport({ path: './app/css/common' }),
          postcssCssnext({ browsers: ['> 1%', 'last 2 versions'] }),
          postcssReporter({ clearMessages: true })
        ]
      }
    }
  ]
}
4

1 回答 1

0

postcss-loader 可能负责此更改(1.3.x)。根据文档,您应该使用“插件”选项的功能。或者在 postcss.config.js 文件中使用数组。

module.exports = {
  module: {
    rules: [
      {
        test: /\.css/,
        use: [
          …
          {
            loader: 'postcss-loader',
            options: {
              plugins: function () {
                return [
                  postcssImport({ path: './app/css/common' }),
                  postcssCssnext({ browsers: ['> 1%', 'last 2 versions'] }),
                  postcssReporter({ clearMessages: true })
                ];
              }
            }
          }
        ]
      }
    ]
  }
}

或通过 postcss.config.js

module.exports = {
  plugins: [
    postcssImport({ path: './app/css/common' }),
    postcssCssnext({ browsers: ['> 1%', 'last 2 versions'] }),
    postcssReporter({ clearMessages: true })
  ]
}

(在 webpack 中)

module.exports = {
  module: {
    rules: [
      {
        test: /\.css/,
        use: [
          …
          'postcss-loader',
        ]
      }
    ]
  }
}
于 2017-04-19T04:47:32.843 回答