Plusieurs extensions de fichiers dans le même répertoire en utilisant Gulp

90

J'ai donc une configuration gulpfile.js.

Dans un dossier d'images, j'ai quelques images, certaines sont des png, des jpgs et des gifs.

Je souhaite cibler tous les png, jpgs et gifs du dossier images.

Je pourrais utiliser ** / * pour cibler tout dans le dossier, mais je ne veux pas, je veux que ce soit spécifique aux types de fichiers.

Je pourrais également le faire et spécifier chaque type de fichier individuellement:

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

Mais c'est beaucoup de se répéter et il semble qu'il devrait y avoir un moyen plus simple.

Je cherche quelque chose comme ça:

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

Mais hélas, ce qui précède ne fonctionne pas (ou du moins cela ne fonctionne que pour le premier type de fichier de la liste)

Quelqu'un sait-il comment faire ça?

Merci

mildrenben
la source
45
Emportez des espaces.
Heikki
1
Cela le fait soudainement fonctionner - c'est génial, merci!
mildrenben
@Heikki, vous devriez en faire une réponse.
Alex
J'ai rencontré ça aussi mais pas encore de résultat, il est possible de le faire uniquement avec js, sans Gulp?
Mara Black

Réponses:

168

Enlevez les espaces

return gulp.src('./images/*.{png,gif,jpg}')
mildrenben
la source
10
ie return gulp.src('./images/*.{png,gif,jpg}'). Merci.
Mr_Green
5
Les extensions de fichiers sont-elles insensibles à la casse?
jbyrd
1
il semble que cela ne fonctionne que s'il n'y a pas d'espaces après les virgules.
Chris
63

Ce modèle de glob a également fonctionné pour moi:

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

Remarque : remarquez le +signe, cela ne fonctionne pas sans lui.

Trouvé sur la documentation de minimatch .

quatre-vingt-cinq
la source
3
en fait MEILLEURE RÉPONSE
Saad Benbouzid
1
Cela m'a conduit à cette doc , qui est plutôt bonne.
jcmonteiro