与 webpack 一起使用时的 PostCSS 插件顺序

PostCSS plugin order when using with webpack

我想使用以下 postCSS 插件:

  1. postcssimport (https://github.com/postcss/postcss-import)
  2. postcss 嵌套 (https://github.com/postcss/postcss-nested)
  3. postcsssimplevars (https://github.com/postcss/postcss-simple-vars)
  4. postcssmixins (https://github.com/postcss/postcss-mixins)
  5. 自动前缀器 (https://github.com/postcss/autoprefixer)
  6. 丢失 (https://github.com/peterramsing/lost)
  7. postcss 灵活性 (https://github.com/7rulnik/postcss-flexibility)

但是我不确定我应该把它们放在里面的顺序

postcss: function () {
  return [postcssimport, postcssnested, ...];
}

有什么帮助吗?

这是我目前正在处理的项目中的一个示例:

webpackConfig.postcss = () => {
  return [
    atImport({
      addDependencyTo: webpack
    }),
    webpackPostcssTools.prependTildesToImports,
    customProperties({
      variables: map.vars
    }),
    customMedia({
      extensions: map.media
    }),
    customSelectors({
      extensions: map.selector
    }),
    normalize,
    mixin,
    cssnext,
    rucksack,
    sorting,
    short
  ]
}

您应该始终先导入,然后是带有选项的 webpack postcss 工具。然后是你的 postcss 附加组件。

随时查看我正在做的项目:https://github.com/codetony25/react-starter-boilerplate

哦,我也想直接回答你的问题。在您的情况下,它应该首先进入 postcssimport。然后其余的似乎是附加组件,因此顺序无关紧要。

postcss.config.js 文件中使用 webpack2

var path = require('path')

module.exports = {
    plugins: [
        require('postcss-nested'),
        require('postcss-import')({
            path: path.join(__dirname, '../../'),
        }),
        require('postcss-cssnext')({
            browsers: [
                'last 2 versions',
                'iOS >= 7',
                'Android >= 4.0',
            ],
        }),
        require('postcss-flex-fallback')(),
        require('postcss-px2rem')({
            remUnit: 75,
        })
    ],
}

webpack.base.cinf.js 文件中

const vueLoaderConfig = require('./vue-loader.conf')

module: {
   rules: [
   ...
     {
       test: /\.vue$/,
       loader: 'vue-loader',
       options: vueLoaderConfig
    },
   ...
}