Исключить подкаталог в gulp.watch

Я бы хотел, чтобы все файлы были глубоко вложены в шаблоны, но исключаем любую папку после сборки.

Так исключить каталоги, например:

  • ./шаблоны/Foo/сборки/**/*

  • ./шаблоны/бар/сборки/**/*

Но включить каталоги и файлы, например:

  • ./шаблоны/Foo/template.html

  • ./шаблоны/Foo/CSS/**/*

  • ./шаблоны/бар/template.html

  • ./шаблоны/бар/CSS/**/*

В настоящее время у меня есть успех, детализируя имена подпапок и под-подтипы

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

Но мне бы очень хотелось, чтобы я мог прекратить обновление выражения каждый раз, когда добавляю определенные под-папки или под-подтипы. Как включить все, кроме?

Ответ 1

Я думаю, что вы могли бы попытаться исключить подкаталоги build со знаком !.

Подумайте о чем-то подобном, приспособите его, чтобы он соответствовал вашим потребностям:

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

Вы также можете посмотреть Gulp Игнорировать.

Ответ 2

Я знаю, что это старо, но вы должны исключить папку и все внутри папки, а также исключить папку, которая не работает.

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