Как Gulp -Watch Несколько файлов?
У меня есть что-то вроде этого:
gulp.task('default', ['css', 'browser-sync'] , function() {
gulp.watch(['sass/**/*.scss', 'layouts/*.css'], function() {
gulp.run('css');
});
});
но он не работает, потому что он отслеживает два каталога, папку sass и layouts для изменений.
Как заставить его работать, чтобы gulp наблюдал за тем, что происходит внутри этих каталогов?
Ответы
Ответ 1
gulp.task('default', ['css', 'browser-sync'] , function() {
gulp.watch(['sass/**/*.scss', 'layouts/**/*.css'], ['css']);
});
sass/**/*.scss
и layouts/**/*.css
будут следить за каждым каталогом и подкаталогом любых изменений в файлах .scss
и .css
, которые изменяются. Если вы хотите изменить это на любой файл, сделайте последний бит *.*
Ответ 2
Вы можете написать такие часы.
gulp.task('watch', function() {
gulp.watch('path/to/file', ['gulp task name for css/scss']);
gulp.watch('path/to/file', ['gulp task name for js']);
});
Таким образом вы можете настроить столько задач, сколько хотите, через путь к файлу, который вы хотите просмотреть, за которым следует имя созданной задачи. Затем вы можете написать свое значение по умолчанию следующим образом:
gulp.task('default', ['gulp task name for css/scss', 'gulp task name for js']);
Если вы хотите просто посмотреть различные изменения файлов, просто просмотрите файлы с помощью glob, как *.css
в вашей задаче.
Ответ 3
Одна из проблем, возникшая для нескольких людей (включая меня), заключается в том, что добавление gulp.filter вне задачи вызывает gulp.watch сбой после первого прохода. Поэтому, если у вас есть что-то вроде этого:
var filter = gulpFilter(['fileToExclude.js'])
gulp.task('newTask', function(){ ...
Затем вам нужно изменить его на:
gulp.task('newTask', function(){
var filter = gulpFilter(['fileToExclude.js'])
Фильтр должен быть включен в функцию задачи. Надежда, которая помогает кому-то.