Запустить задачу gulp с параметром из наблюдателя

#gulp #gulp-watch

#gulp #gulp-смотреть #gulp-watch

Вопрос:

Мне интересно, как передать один файл в задачу gulp.
Я не хочу фильтровать всю коллекцию файлов, а также не хочу тратить ресурсы на разбор всех файлов из коллекции по задачам.
Итак, я подумал, что лучший способ — передать один измененный файл из gulp.watch() в задачу gulp, но не нашел рабочего решения.

 gulp.task('html', function(file) {
    return gulp.src(file)
        .pipe(fileInclude(fileIncludeConf))
        .pipe(gulp.dest(paths.dest.templates));
});

gulp.task('watch', function() {
    gulp.watch(path.src.templates).on('change', function(file) {
        // gulp run 'html' task with 'file' as src
    })
});
  

Есть ли способ запускать подобные задачи gulp? Я пробовал использовать функцию вместо задачи, но это не работает.

Ответ №1:

Похоже, вы хотите что-то вроде gulp-cached или gulp-changed, чтобы передавать только измененные файлы. Итак:

 var cache = require('gulp-cached');

gulp.task('html', function(file) {
    return gulp.src(file)
        .pipe(cache("only working on changed files here")
        .pipe(fileInclude(fileIncludeConf))
        .pipe(gulp.dest(paths.dest.templates));
});

gulp.task('watch', function() {
    gulp.watch(path.src.templates, ['html'])
});