Gulp watch 在我保存文件后保持 运行

Gulp watch keeps running after I save the file

我安装了 gulp 来缩小我的 JS 文件。当我 运行 gulp watch 观察者正在等待文件更改时,这很好。 但是,当我修改文件并保存时,监视任务不仅被触发一次,而且一直被触发,而且没有停止。我必须通过点击 ctrl + c.

手动停止任务

这是我的 gulpfile.js 文件:

var gulp = require('gulp');
var minify = require('gulp-minify');

gulp.task('min-js', function() {
    return gulp.src('lib/app.js')
        .pipe(minify({
            ext: {
                min: '.min.js'
            },
            ignoreFiles: ['-min.js']
        }))
        .pipe(gulp.dest('lib'))
});

gulp.task('watch', function(){
  gulp.watch('lib/app.js', gulp.parallel('min-js'));
  // Other watchers
});

gulp.task('default', gulp.parallel('min-js', 'watch'));

gulp-minify 除了缩小文件外还输出源文件。

请参阅文档 here

由于输出被传送到与输入相同的目录,lib,观察者发现输入文件被覆盖,并再次触发。这会导致观察者无限循环触发缩小。

解决方案:

  1. 将输出目录更改为不同于输入目录。
  2. gulp-minify 上使用 noSource 选项来防止源文件的输出。