gulp globbing - como observar tudo abaixo do diretório
108
Esta é uma pergunta muito estúpida, mas eu realmente não consegui encontrar uma resposta satisfatória: Como faço para usar o gulp globbing para selecionar todos os arquivos em todos os subdiretórios abaixo de um determinado diretório?
O padrão para todos os arquivos em todos os diretórios é geralmente ./src/less/**/*.*ou ./src/less/**/*, ambos devem funcionar.
De um modo geral, é melhor combinar extensões de arquivo específicas - mesmo que todas devam ser iguais - para evitar a captura de arquivos de sistema ou outro lixo. Nesse caso, você pode fazer ./src/less/**/*.lessapenas para .lessarquivos ou algo como .src/less/**/*.{less,css}para arquivos .lesse .css.
O site do Grunt tem uma referência muito boa para a maioria dos globs do minimatch. (Grunt e gulp usam minimatch , uma vez que é a biblioteca glob para praticamente tudo relacionado ao Node.)
Seria bom para gulp ou minimatch ter seus próprios documentos completos, mas isso é código aberto para você.
Vou verificar o site do Grunt, obrigado. O ponto sobre os arquivos de sistema definitivamente faz sentido. A razão pela qual quero que seja um pouco mais relaxado é porque o estou usando para assistir.
Jehan
1
Se ainda não o fez, recomendo enfaticamente aprender e usar o gulp-watchmódulo para assistir a arquivos, porque ele também pode monitorar novos arquivos. É um pouco mais trabalhoso para configurar, mas vale a pena, IMO.
OverZealous
8
Para referência futura, uso uma ferramenta em globtester.com , ela usa minimatch, que o gulp usa por meio de node-glob. "glob refere-se à sintaxe node-glob ou pode ser um caminho de arquivo direto." (fonte: github.com/gulpjs/gulp/blob/master/docs/API.md ) "[node-glob] usa a biblioteca minimatch para fazer sua correspondência." (fonte: github.com/isaacs/node-glob )
Daniel Dropik
1
'./src/less/**'parece funcionar. Ainda assim, se alguém tiver uma lista mais definitiva de todos os comandos globais, ficaria feliz em aceitar sua resposta e adicioná-la aos documentos do gulp. Agora você tem que ir para a documentação de um dos submódulos do gulp, que então fornece uma lista de páginas de manual. Seria bom ter uma referência direta, especialmente para designers que usam gole.
gulp.watch('./build/**', ...)parece desencadear (erroneamente ?) algumas mudanças no diretório pai (por exemplo, ./.git/). Adicionando extra / * na extremidade parece evitar esse problema: gulp.watch('./build/**/*', ...).
Medmunds
@medmunds encontrei resultados semelhantes. O glob TEM que terminar com um * ou um * .less específico. *. * não funcionará, pois falta nada sem uma extensão. Parece levar o . e combine usando correspondência de estilo POSIX; ou seja, se um arquivo não tiver um 'ponto', ele não corresponderá. Talvez devesse haver um caso especial para . como . via DIR no Windows corresponde a 'LICENSE', mas infelizmente ln *.*não. Dois significados diferentes para ' . ' é triste. *parece fazer o que precisamos. Um . O glob provavelmente nunca é o que o desenvolvedor realmente pretendia na minha opinião e pode precisar de um aviso lançado.
gulp-watch
módulo para assistir a arquivos, porque ele também pode monitorar novos arquivos. É um pouco mais trabalhoso para configurar, mas vale a pena, IMO.'./src/less/**'
parece funcionar. Ainda assim, se alguém tiver uma lista mais definitiva de todos os comandos globais, ficaria feliz em aceitar sua resposta e adicioná-la aos documentos do gulp. Agora você tem que ir para a documentação de um dos submódulos do gulp, que então fornece uma lista de páginas de manual. Seria bom ter uma referência direta, especialmente para designers que usam gole.fonte
gulp.watch('./build/**', ...)
parece desencadear (erroneamente ?) algumas mudanças no diretório pai (por exemplo, ./.git/). Adicionando extra / * na extremidade parece evitar esse problema:gulp.watch('./build/**/*', ...)
.ln *.*
não. Dois significados diferentes para ' . ' é triste.*
parece fazer o que precisamos. Um . O glob provavelmente nunca é o que o desenvolvedor realmente pretendia na minha opinião e pode precisar de um aviso lançado.**
é recursivo.