Várias extensões de arquivo dentro do mesmo diretório usando Gulp

90

Portanto, tenho uma configuração de gulpfile.js.

Em uma pasta de imagens, tenho algumas imagens, algumas são pngs, algumas jpgs e alguns gifs.

Quero direcionar todos os pngs, jpgs e gifs na pasta de imagens.

Eu poderia usar ** / * para direcionar tudo na pasta, mas não quero, quero que seja específico para os tipos de arquivo.

Eu também poderia fazer isso e especificar cada tipo de arquivo individualmente:

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

Mas é muita repetição e parece que deveria haver uma maneira mais fácil.

Estou procurando algo assim:

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

Mas, infelizmente, o acima não funciona (ou pelo menos só funciona para o primeiro tipo de arquivo da lista)

Alguém sabe como fazer isto?

obrigado

lightrenben
fonte
45
Tire os espaços.
Heikki
1
Isso faz com que de repente funcione - isso é incrível, obrigado!
gentlerenben,
@Heikki, você deve fazer isso como uma resposta.
Alex
Eu também encontrei isso, mas nenhum resultado ainda, é possível fazer isso apenas com js, sem Gulp?
Mara Black

Respostas:

168

Tire os espaços

return gulp.src('./images/*.{png,gif,jpg}')
lightrenben
fonte
10
ie return gulp.src('./images/*.{png,gif,jpg}'). Obrigado.
Mr_Green
5
As extensões dos arquivos não diferenciam maiúsculas de minúsculas?
jbyrd
1
parece que só funciona se não houver espaços após as vírgulas.
Chris
63

Este padrão glob também funcionou para mim:

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

Nota : Observe o +sinal, ele não funciona sem ele.

Encontrado na documentação do minimatch .

oitenta e cinco
fonte
3
na verdade, MELHOR RESPOSTA
Saad Benbouzid
1
Isso me levou a este doc , que é muito bom.
jcmonteiro