如何过滤gulp watch,它监视CSS更改,以便browserSync仅流式处理实际修改的文件

如何过滤gulp watch,它监视CSS更改,以便browserSync仅流式处理实际修改的文件,gulp,browser-sync,Gulp,Browser Sync,我有一个狼吞虎咽的手表任务: gulp.watch([ basePath+'/css/**/*.css' ], ['css']); 此任务侦听css文件的更改并启动“css”任务 css任务使用browserSync来流式传输更改: var gulp = require('gulp'), browserSync = require('browser-sync'); gulp.task('css', function() { r

我有一个狼吞虎咽的手表任务:

 gulp.watch([
        basePath+'/css/**/*.css'
    ], ['css']);
此任务侦听css文件的更改并启动“css”任务

css任务使用browserSync来流式传输更改:

var gulp = require('gulp'),
        browserSync = require('browser-sync');

    gulp.task('css', function() {
        return gulp.src(basePath+'/css/**/*.css', {'read': false})
            .pipe(browserSync.stream());
    });
问题是,当我只更改1个css文件时,browserSync会查看文件夹中的所有css文件(由于gulp.src),并使用web套接字在浏览器中为所有文件流式传输更改

[BS] 3 files changed (custom.css, custom2.css, main.css)
即使我只更改custom2.css,也会发生这种情况

现在,问题是:

如何过滤gulp watch或CSS任务,以便browserSync仅流式处理实际修改的文件?并不是所有的人

有什么想法吗?

您可以调用并使用传递给回调的事件来准确地知道更改了哪个css文件

gulp.watch(basePath+'/css/**/*.css', function(event) {
  gulp.src(event.path, {read: false})
    .pipe(browserSync.stream());
});
在将手表更改为此状态后,示例中的css任务将不再需要