В общем, какой-то конфликт в правилах, там было старое правило на картинки:
{
test: /\.(png|jpe?g|gif|svg|webp|avif|ico)(\?.*)?$/, // тут все равно только полное имя файла, без query string, может быть наследие четвертого вебпака
type: 'javascript/auto',
use: [
{
loader: 'url-loader',
options: {
esModule: false,
limit: 10000,
name: 'img/[name].[hash:8].[ext]'
}
],
}
которое перебивало мое правило
{
test: /\.svg$/,
resourceQuery: /raw/,
type: 'asset/source',
}
независимо от того, выше мое правило в конфиге или ниже (может быть это особенность chainWebpack)
Добавил в старое правило
resourceQuery: /^$/
, заработало