Webpack &引用;“撤退”;网页包配置中的规则

Webpack &引用;“撤退”;网页包配置中的规则,webpack,webpack-config,Webpack,Webpack Config,是否有一种方法可以为Webpack定义一个“回退”规则,这样,如果.module.rules中没有其他匹配项,则应用此规则 我曾尝试使用非常宽松的测试在最后一个位置指定规则:,但无论其位置如何,它似乎都优先(第一个、最后一个,也在其中一个中尝试) 例如: 模块:{ 规则:[ { 其中一项:[ {test:/\.ts$/i,加载程序:“ts加载程序”}, {test:/\.ttf$/i,加载程序:“url加载程序”}, {test:/.+/,加载程序:“文件加载程序”} ] } ] } 我本来希

是否有一种方法可以为Webpack定义一个“回退”规则,这样,如果
.module.rules
中没有其他匹配项,则应用此规则

我曾尝试使用非常宽松的
测试在最后一个位置指定规则:
,但无论其位置如何,它似乎都优先(第一个、最后一个,也在其中一个
中尝试)

例如:

模块:{
规则:[
{
其中一项:[
{test:/\.ts$/i,加载程序:“ts加载程序”},
{test:/\.ttf$/i,加载程序:“url加载程序”},
{test:/.+/,加载程序:“文件加载程序”}
]
}
]
}

我本来希望所有不是
.ts
.ttf
的文件都可以通过
文件加载器加载,但实际上它似乎甚至适用于
.ts
文件。

这是因为上一次测试中的正则表达式匹配所有文件扩展名,包括那些你想忽略的

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

例如:

模块:{
规则:[
{test:/\.ts$/i,加载程序:“ts加载程序”},
{test:/\.ttf$/i,加载程序:“url加载程序”},
{test:/\.(?!ts | ttf)([\w]+)/i,加载程序:“文件加载程序”}
]

}
但是规则在一个
块中,不应该只匹配一条规则吗?例如,对于
.ts
文件,第一个规则匹配,因此我希望它甚至不会尝试匹配其他规则…我只能假设在您的示例中,
其中一个被忽略,因为没有主条件。我已经编辑了我的答案并删除了
oneOf
bit哦,我可能使用了
oneOf
不正确,让我试一下。。。不幸的是,“反向正则表达式”并不是一个真正的选项,因为实际配置包含大约20条规则,其中一些规则具有相当复杂的正则表达式、排除等。因此创建和维护反向表达式将是一场噩梦