在使用gulp.watch监听文件改变,Mac下文件没改变也会一直触发change,Windows下正常,怎么回事?

var gulp = require('gulp')

gulp.task('js', function() {
    return gulp.src('src/js/*.js')
        .pipe(gulp.dest('./tmp/'));
});

gulp.task('serve', function() {
    gulp.watch('src/js/*.js', ['js']).on('change',function(e){
        console.log(e);
    });
});


运行gulp serve
就这么简单的一个任务,在Mac下,不知道为什么一直触发change,我并没有去修改任何文件。Windows下正常
调了N久了,一直搞不懂原因。。。
因为一直触发change,导致browser-sync也不能用,页面会一直刷新,蛋疼死了。。。

clipboard.png

阅读 4.1k
3 个回答

改成这样?

gulp.task('serve', ['js'], function() {
    gulp.watch('src/js/*.js').on('change',function(e){
        console.log(e);
    });

});

会不会其他地方造成的。目测没有什么问题啊

各种调试后,发现是因为我用了一个FAT32格式的仓库盘存储的项目,因为是FAT32格式,所以导致了这个问题
我把项目放到了系统盘里HFS+格式,然后就没这问题了。。。
谁搞得懂其中的原理?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题