Oto mój przypadek użycia: większość svgów powinna być zaznaczona. Tak więc skonfigurowałem taką regułę:Webpack 2: Jak zastosować różne programy ładujące do plików o tym samym rozszerzeniu?
{test: /\.svg$/, use: "svg-inline-loader"},
W niektórych przypadkach potrzebuję tylko adresu URL svg, a nie jego wpisywania. W pakiecie internetowym 1.x wymagałem ich w następujący sposób: require('path/to/file.svg?external')
.
Oto odpowiednia zasada:
{test: /\.svg\?external$/, use: "file-loader!image-webpack-loader"},
Wydaje się WebPacka 2 nie obejmuje ?
udział już po test
ing dla reguły, ponieważ tylko pierwsza zasada jest stosowana do wszystkie moi pomostów żylnych po migracji .
Czy istnieje sposób obejścia tego? Czy może być inna strategia stosowania różnych zestawów ładowań dla plików o tym samym rozszerzeniu, gdy są one używane?
PS: Jestem świadomy, że mogę wymagać tego pliku: require('!file-loader!image-webpack-loader!path/to/file.svg')
, ale moje ładowarki są nieco bardziej skomplikowane i nie chcę powtarzać ich konfiguracji przez cały czas.
PSS: nie wydają się działać albo (to nadal stosuje się tylko pierwszą zasadę)
{test: /\.svg$/, use: "svg-inline-loader", exclude: /\?external/},
{test: /\.svg$/, use: "file-loader?!image-webpack-loader", include: /\?external/}
Mam ten sam problem. Chcę używać less-loader dla domyślnie '* .less' plików i niestandardowego programu ładującego dla plików' * .less? Module'. Ale nie chcę dodawać niczego takiego jak '? Default' do wszystkich plików" .less ". Czy możesz udostępnić swoją konfigurację? – c4off
'oneOf' używa pierwszej pasującej reguły. Więc dla twojego przypadku użycia umieść 'resourceQuery:/module /' w pierwszym wpisie i bez 'resourceQuery' w ogóle na drugim. – Daniel