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
,观察者发现输入文件被覆盖,并再次触发。这会导致观察者无限循环触发缩小。
解决方案:
- 将输出目录更改为不同于输入目录。
- 在
gulp-minify
上使用 noSource
选项来防止源文件的输出。
我安装了 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
,观察者发现输入文件被覆盖,并再次触发。这会导致观察者无限循环触发缩小。
解决方案:
- 将输出目录更改为不同于输入目录。
- 在
gulp-minify
上使用noSource
选项来防止源文件的输出。