根据文件名按顺序跳过/选择单个Webpack加载器?

时间:2018-07-17 16:46:10

标签: webpack webpack-style-loader css-loader

假设我有一组处理CSS的Webpack(v3)加载器,如下所示:

{
  test: /\.css$/,
  use: [
    require.resolve('style-loader'),
    {
      loader: require.resolve('css-loader'),
      options: {
        importLoaders: 0
      }
    }
  ]
}

我想要的是一组可以处理CSS,LESS和SASS的加载器,唯一的区别是首先在堆栈中应用哪个加载器,例如:

{
  test: /\.(le|sc|c)ss$/,
  use: [
    require.resolve('style-loader'),
    {
      loader: require.resolve('css-loader'),
      options: {
        importLoaders: 1,
      }
    },
    {
      // if filename matches /\.less$/, then require.resolve('less-loader'),
      // if filename matches /\.scss$/, then require.resolve('sass-loader'),
      // else skip this
    }
  ]
}

以便在需要时将文件编译成CSS,然后所有文件都经过相同的步骤。

Webpack是否支持这种条件?这些文档讨论的是嵌套规则,但是我完全迷失了试图准确解析出所需的条件。

不希望对这三个扩展进行三个单独的配置,因为那样的话,它们都将被编译成三个不同的文件/样式标签。

0 个答案:

没有答案