"Fallback" Webpack 配置中的规则



有没有一种方法可以定义一个"回退";Webpack的规则,以便如果.module.rules中没有其他匹配项,则应用此规则?

我尝试过用一个非常宽松的test:在最后一个位置指定一个规则,但它似乎优先于它的位置(第一个、最后一个,也在oneOf中尝试过(。

示例:

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

我希望所有不是.ts.ttf的东西都能通过file-loader加载,但实际上它似乎甚至适用于.ts文件。

之所以会发生这种情况,是因为上一次测试中的正则表达式匹配了所有文件扩展名,包括您希望忽略的扩展名。

为了避免这种情况,您需要从catch-all测试中筛选出已知/预期的扩展。

例如:

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

相关内容

  • 没有找到相关文章

最新更新