使用来自观察者的参数运行gulp任务

时间:2016-10-23 11:53:27

标签: 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 个答案:

答案 0 :(得分:0)

听起来您希望gulp-cachedgulp-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'])
});