0

有没有办法为 Webpack 定义一个“回退”规则,这样如果没有其他匹配 from .module.rules,则应用此规则?

我尝试在最后一个位置指定一个规则,并且非常宽松test:,但是无论它的位置如何,它似乎都具有优先权(第一个,最后一个,也在 内部尝试oneOf)。

例子:

  module: {
    rules: [
      {
        oneOf: [
          { test: /\.ts$/i, loader: "ts-loader" },
          { test: /\.ttf$/i, loader: "url-loader" },
          { test: /.+/, loader: "file-loader" }
        ]
      }
    ]
  }

我本来希望所有不是 a.ts.ttf要通过 加载的东西file-loader,但实际上它似乎适用.ts于例如文件。

4

1 回答 1

-1

发生这种情况是因为最后一个测试中的正则表达式匹配所有文件扩展名,包括您希望忽略的那些。

为了避免这种情况,您需要从全面测试中过滤掉已知/预期的扩展。

例如:

  module: {
    rules: [
       { test: /\.ts$/i, loader: "ts-loader" },
       { test: /\.ttf$/i, loader: "url-loader" },
       { test: /\.(?!ts|ttf)([\w]+)/i, loader: "file-loader" }
    ]
  }

于 2020-11-14T14:59:02.250 回答