如何过滤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任务将不再需要