2014-07-18 15 views
10

Chciałbym obejrzeć wszystkie pliki głęboko zagnieżdżone w szablonach, ale wykluczyć dowolny folder po kompilacji.Wyklucz podkatalog w gulp.watch

Więc wykluczyć katalogi, takie jak:

  • ./templates/foo/build/**/*

  • ./templates/bar/build/**/*

Ale to między innymi: katalogi i pliki, takie jak:

  • ./templates/foo/template.html

  • ./templates/foo/css/**/*

  • ./templates/bar/template.html

  • ./templates/bar/css/**/*

Obecnie mam sukces wyszczególniać nazw sub-sub-folderów i sub-sub-typów plików

gulp.watch(['templates/*/*.html','templates/*/*.js', 
      'templates/*/*.json','templates/*/css/**/*', 
      'templates/*/js/**/*'], ['build_templates']); 

Ale naprawdę chciałbym móc zatrzymać aktualizację wyrażenia za każdym razem, gdy dodaję pod-podfoldery lub pod-podtypów. W jaki sposób można uwzględnić wszystkie elementy oprócz wyjątków?

Odpowiedz

11

Myślę, że można spróbować wykluczyć podkatalogi build ze znakiem !.

Pomyśl o czymś takim, aby dostosować go do Twoich potrzeb:

gulp.watch([ 
'templates/**/*', 
'!templates/*/{build,build/**}' 
], ['build_templates']) 

Można również zajrzeć do Gulp Ignore.

+0

Nie udało mi się sprawić, żeby to zadziałało. Znalazłem https://www.npmjs.org/package/gulp-grep-stream – jrhicks

+1

Działa to tylko wtedy, gdy zainstalowałeś gulp-ignore. –

+1

@SachinGorade źle, nie potrzebujesz wtyczki do negowania wzorców globu. –

2

Wiem, że to jest stare, ale należy wykluczyć folder i wszystko wewnątrz folderu, z wyjątkiem samego folderu nie działa.

gulp.watch(['templates/**/*','!templates/{foo, bar}/build/**/*'], ['build_templates']);