gulp.watch没有检测到空目录中的变化

时间:2017-12-01 17:35:15

标签: gulp gulp-watch

我正在研究一个简单的gulpfile,并注意到gulp.watch方法存在问题。如果我将新文件添加到空目录,gulp.watch将不会触发。但是,如果目录中至少有一个文件,则检测到所有更改事件。每当有一个空目录添加新文件或我将文件添加到现有的空目录时,我显然可以重新启动我的“监视”任务,但这似乎与gulp.watch方法的目的相反。

要清楚,只有在该目录中至少存在一个文件后,watch才会检测添加和删除的文件。

我的问题是否有问题这是我独有的错误,或者是否有更多人经历过这个问题。也有人知道目前的工作吗?

这是我的gulp任务:

gulp.task('watch', () => {
var watcher = gulp.watch('src/styles/scss/*.scss', {cwd: './'}, ['styles']);

watcher.on('change', (event) => {
    console.log(`File ${event.path} was ${event.type}, running tasks...`);
});

当前gulp版本:3.9.1

P.S。我也知道这可能是技术的局限性我不会向gulp团队报告一个不是bug的bug。

谢谢!

1 个答案:

答案 0 :(得分:0)

真棒!谢谢,Mark让我朝着正确的方向前进。这不是一个错误,只有一种特定的方式你必须这样做。

gulp.task('watch', () => { 
    var watcher = gulp.watch(['src/styles/scss/*.scss', 'src/styles/*],{cwd: './'}, ['styles']);

watcher.on('change', (event) => {
    console.log(`File ${event.path} was ${event.type}, running tasks...`);
});

诀窍是观察您的父目录是否有任何变化。现在,它将检测文件更改以及空子目录中的已添加和已删除文件。