Я просто попробовал, и мне не повезло. Я обновил свой ответ, чтобы показать, что я сделал.

ой вариант использования: большинство svgs должно быть встроено. Поэтому я установил правило так:

{test: /\.svg$/, use: "svg-inline-loader"},

В некоторых случаях я просто хочу URL-адрес SVG, а не вставлять его. В веб-пакете 1.x я требовал их так:require('path/to/file.svg?external').

Вот соответствующее правило:

{test: /\.svg\?external$/, use: "file-loader!image-webpack-loader"},

Похоже, Webpack 2 не включает в себя? расстаться, когдаtestдля правила, так как только первое правило применяется квсе мои svgs после миграции.

Это можно обойти? Может ли быть другая стратегия, как применять другой набор загрузчиков для файлов с одинаковым расширением, когдаrequireих?

PS: я знаю, что мне может потребоваться такой файл:require('!file-loader!image-webpack-loader!path/to/file.svg') но мои загрузчики немного сложнее, чем я, и я не хочу повторять их конфигурацию все время.

PSS: Кажется, это тоже не работает (по-прежнему применяется только первое правило)

{test: /\.svg$/, use: "svg-inline-loader", exclude: /\?external/},
{test: /\.svg$/, use: "file-loader?!image-webpack-loader", include: /\?external/}

Ответы на вопрос(3)

Ваш ответ на вопрос