Подтвердить что ты не робот

Как Gulp -Watch Несколько файлов?

У меня есть что-то вроде этого:

gulp.task('default', ['css', 'browser-sync'] , function() {

    gulp.watch(['sass/**/*.scss', 'layouts/*.css'], function() {
        gulp.run('css');
    });

});

но он не работает, потому что он отслеживает два каталога, папку sass и layouts для изменений.

Как заставить его работать, чтобы gulp наблюдал за тем, что происходит внутри этих каталогов?

4b9b3361

Ответ 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'])

Фильтр должен быть включен в функцию задачи. Надежда, которая помогает кому-то.