Webpack 2+: Como aplicar carregadores diferentes para arquivos com a mesma extensão?
Aqui está o meu caso de uso: a maioria dos svgs deve estar embutida. Então, eu configurei uma regra como esta:
{test: /\.svg$/, use: "svg-inline-loader"},
Em alguns casos, eu apenas quero o URL de um svg em vez de incluí-lo. No webpack 1.x, eu os exigi assim:require('path/to/file.svg?external')
.
Aqui está a regra correspondente:
{test: /\.svg\?external$/, use: "file-loader!image-webpack-loader"},
Parece que o webpack 2 não inclui o?
parte mais quandotest
para uma regra, já que apenas a primeira regra está sendo aplicada atudo meus svgs após a migração.
Existe uma maneira de contornar isso? Talvez exista uma estratégia diferente de como aplicar diferentes conjuntos de carregadores para arquivos da mesma extensão quandorequire
ing eles?
PS: Estou ciente de que poderia exigir o arquivo assim:require('!file-loader!image-webpack-loader!path/to/file.svg')
mas meus carregadores são um pouco mais complexos que isso e não quero repetir a configuração o tempo todo.
PSS: isso também parece não funcionar (ainda aplica apenas a primeira regra)
{test: /\.svg$/, use: "svg-inline-loader", exclude: /\?external/},
{test: /\.svg$/, use: "file-loader?!image-webpack-loader", include: /\?external/}