【问题标题】:Seems like webpack ignores 'include' and 'exclude' rules似乎 webpack 忽略了“包含”和“排除”规则
【发布时间】:2016-10-31 00:27:58
【问题描述】:

我有以下文件夹设置:

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 文件夹并保留以下类和它们一样(原版),但 grid.css 中的类(如 .container)仍然是随机的。

【问题讨论】:

  • 你是 excludingincluding /lib 文件夹。上面的配置显然是错误的。你不必排除任何东西。只包括你想成为webpacked的东西。
  • @Venky 我再次将其包含在内,但使用不同的加载器。您如何建议重组?
  • 我会使用类似dist/assets/...... 的文件夹来存储要成为webpackeddistributed 的文件。其他文件夹中的所有其他不可分发的文件src/assets.....

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


【解决方案1】:

可能的答案是 webpack 被 path.join - documentation 指定的 path.resolve 弄糊涂了。我认为它可能会对路径进行直接字符串比较,因此相对 .. 正在破坏它,因此排除/包含无法正常工作。 path.resolve 应该解析为绝对路径。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多