#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'])
});