Wiele rozszerzeń plików w tym samym katalogu przy użyciu Gulp

91

Mam więc konfigurację gulpfile.js.

W folderze z obrazami mam kilka obrazów, niektóre to png, trochę jpg i trochę gify.

Chcę kierować reklamy na wszystkie pliki png, jpg i gify w folderze obrazów.

Mógłbym użyć ** / *, aby wskazać wszystko w folderze, ale nie chcę, chcę, aby było to specyficzne dla typów plików.

Mógłbym również to zrobić i określić każdy typ pliku indywidualnie:

return gulp.src('./images/*.jpg', './images/*.png', './images/*.gif')

Ale to dużo powtarzania się i wydaje się, że powinien być łatwiejszy sposób.

Szukam czegoś takiego:

return gulp.src('./images/*.{png, gif, jpg}')

Ale niestety powyższe nie działa (lub przynajmniej działa tylko dla pierwszego typu pliku na liście)

Czy ktoś wie, jak to zrobić?

Dzięki

mildrenben
źródło
46
Usuń przestrzenie.
Heikki
1
To sprawia, że ​​nagle działa - to wspaniale, dzięki!
mildrenben
@Heikki, powinieneś to zrobić jako odpowiedź.
Alex
Też się z tym spotkałem, ale nie ma jeszcze rezultatu, czy można to zrobić tylko z js, bez Gulp?
Mara Black

Odpowiedzi:

172

Usuń przestrzenie

return gulp.src('./images/*.{png,gif,jpg}')
mildrenben
źródło
10
tj return gulp.src('./images/*.{png,gif,jpg}'). Dzięki.
Mr_Green
5
Czy w rozszerzeniach plików wielkość liter jest rozróżniana?
jbyrd
1
wygląda na to, że działa tylko wtedy, gdy po przecinkach nie ma spacji.
Chris,
63

Ten wzór globu również działał dla mnie:

return gulp.src('./images/*.+(jpg|jpeg|gif|png)')

Uwaga : Zwróć uwagę na +znak, bez niego nie działa.

Znaleziono w dokumentacji minimatchu .

osiemdziesiąt pięć
źródło
3
właściwie NAJLEPSZA ODPOWIEDŹ
Saad Benbouzid
1
To doprowadziło mnie do tego dokumentu , który jest całkiem niezły.
jcmonteiro