我正在研究一个简单的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。
谢谢!
答案 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...`);
});
诀窍是观察您的父目录是否有任何变化。现在,它将检测文件更改以及空子目录中的已添加和已删除文件。