【问题标题】:autoprefixer and post css not running on sass filesautoprefixer 和 post css 不在 sass 文件上运行
【发布时间】:2017-12-30 11:41:56
【问题描述】:

我对 css 和 sass 有以下 webpack 2.0 规则:

  {
    test: /\.css$/,
    use: [
      require.resolve('style-loader'),
      {
        loader: require.resolve('css-loader'),
        options: {
          importLoaders: 1
        }
      },
      {
        loader: require.resolve('postcss-loader'),
        options: {
          // Necessary for external CSS imports to work
          // https://github.com/facebookincubator/create-react-app/issues/2677
          ident: 'postcss',
          plugins: () => [
            require('postcss-flexbugs-fixes'),
            autoprefixer({
              browsers: [
                '>1%',
                'last 4 versions',
                'Firefox ESR',
                'not ie < 9' // React doesn't support IE8 anyway
              ],
              flexbox: 'no-2009'
            })
          ]
        }
      }
    ]
  },
  {
    test: /\.scss$/,
    exclude: /node_modules/,
    use: ExtractTextPlugin.extract({
      fallback: 'style-loader',
      use: [
        {
          loader: 'css-loader',
          query: {
            modules: true,
            sourceMap: true,
            importLoaders: 2,
            localIdentName: '[name]__[local]___[hash:base64:5]'
          }
        },
        'sass-loader'
      ]
    })
  },

如何让 autoprefixer 和 postcss 与 sass 文件一起运行?

【问题讨论】:

    标签: css webpack sass


    【解决方案1】:

    您只需将 postCSS 加载器添加到您的 sass 规则中。像

     {
        test: /\.scss$/,
        exclude: /node_modules/,
        use: ExtractTextPlugin.extract({
          fallback: 'style-loader',
          use: [
            {
              loader: 'css-loader',
              query: {
                modules: true,
                sourceMap: true,
                importLoaders: 2,
                localIdentName: '[name]__[local]___[hash:base64:5]'
              }
            },
            {
            loader: require.resolve('postcss-loader'),
            options: {
              // Necessary for external CSS imports to work
              // https://github.com/facebookincubator/create-react-app/issues/2677
              ident: 'postcss',
              plugins: () => [
                require('postcss-flexbugs-fixes'),
                autoprefixer({
                  browsers: [
                    '>1%',
                    'last 4 versions',
                    'Firefox ESR',
                    'not ie < 9' // React doesn't support IE8 anyway
                  ],
                  flexbox: 'no-2009'
                })
              ]
            }
            },
            'sass-loader'
          ]
        })
      },
    

    当然最好在上面定义 postCSS 加载器并在两个规则中重用 - 用于 .css 和 .scss

    【讨论】:

      猜你喜欢
      • 2019-12-08
      • 2016-03-05
      • 2015-01-20
      • 2018-02-25
      • 1970-01-01
      • 2014-09-18
      • 2019-07-05
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多