Gulps gulp.watch是否未触发新文件或已删除文件?

当在全局匹配中编辑文件时,以下Gulpjs任务可以正常工作:

// watch task.
gulp.task('watch', ['build'], function () {
    gulp.watch(src + '/js/**/*.js', ['scripts']);
    gulp.watch(src + '/img//**/*.{jpg,jpeg,png,gif}', ['copy:images']);
    gulp.watch(src + '/less/*.less', ['styles']);
    gulp.watch(src + '/templates/**/*.{swig,json}', ['html']);
});

// build task.
gulp.task('build', ['clean'], function() {
    return gulp.start('copy', 'scripts', 'less', 'htmlmin');
});

但是,对于新文件或已删除文件,它不起作用(不会触发)。有什么我想念的吗?

编辑:即使使用grunt-watch插件,它似乎也不起作用:

gulp.task('scripts', function() {
    return streamqueue(
        { objectMode: true },
        gulp.src([
            vendor + '/jquery/dist/jquery.min.js',
            vendor + '/bootstrap/dist/js/bootstrap.min.js'
        ]),
        gulp.src([
            src + '/js/**/*.js'
        ]).pipe(plugins.uglify())
    )
    .pipe(plugins.concat(pkg.name + '.min.js'))
    .pipe(gulp.dest(dest + '/js/'));
});

gulp.task('watch', ['build'], function () {
    plugins.watch({glob: src + '/js/**/*.js'}, function () {
        gulp.start('scripts');
    });
});

编辑:解决了,就是这个问题./(的值为src开头的电子邮件似乎无法在ATM上正常工作。

JinJin小宇宙2020/03/26 16:46:08

需要注意的重要一点是,看起来gulp.watch仅报告Windows上已更改和删除的文件,但默认情况下在OSX上监听新文件和已删除的文件:

https://github.com/gulpjs/gulp/issues/675