看起来像webpack忽略&包括'和'排除'规则

时间:2016-06-28 15:22:11

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

我有以下文件夹设置:

app/
  scss/
    lib/
      grid.css
    main.scss
webpack/
  webpack.config.js

在我的 webpack.config.js 我有以下加载程序来处理scss和css:

  {
    test: /\.(css|scss)$/,
    exclude: path.join(__dirname, '..', 'app/scss/lib/'),
    loader: ExtractTextPlugin.extract(
      'style-loader', 'css-loader?module!resolve-url!postcss-loader!sass-loader?sourceMap'
    )
  },
  {
    test: /\.(css|scss)$/,
    include: path.join(__dirname, '..', 'app/scss/lib/'),
    loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
  }

这里的想法是,css-loader使用的模块基本上将类名.red重写为.JHSKJasdasa之类的随机内容,但我想要它排除 / lib 文件夹和保留与它们相同的类(vanilla),但是, grid.css 中的类(.container)会随机化。

1 个答案:

答案 0 :(得分:1)

可能的答案是webpack因path.join - documentation指定path.resolve而感到困惑。我认为它可能会对路径进行直接字符串比较,因此相对..会破坏它,因此排除/包含不能正常工作。 path.resolve应该解决绝对路径。

如果这不起作用,请尝试添加文件夹app/scss/src(或类似文件)以分隔出要使用css-loader的代码。然后include而不是exclude lib