我正在使用这个Gulp Watch示例:https://github.com/floatdrop/gulp-watch/blob/master/docs/readme.md#starting-tasks-on-events.
var gulp = require('gulp');
var watch = require('gulp-watch');
var batch = require('gulp-batch');
gulp.task('build', function () { console.log('Working!'); });
gulp.task('watch', function () {
watch('**/*.js', batch(function () {
gulp.start('build');
}));
});
Run Code Online (Sandbox Code Playgroud)
当我在Windows 8机器上运行它时,它仅在我第一次更改文件时运行:
C:\test>gulp watch
[08:40:21] Using gulpfile C:\test\gulpfile.js
[08:40:21] Starting 'watch'...
[08:40:21] Finished 'watch' after 2.69 ms
[08:40:31] Starting 'build'...
Working!
[08:40:31] Finished 'build' after 261 µs
Run Code Online (Sandbox Code Playgroud)
下次什么都没发生.为什么?
ddp*_*rrt 17
如果您仔细阅读文档,则会看到以下短语:
您可以传递普通回调,它将在每个事件上调用,或者在gulp-batch中包装它以运行一次
所以,这基本上是与之相关的gulp-batch.要经常观看,只需删除批量调用:
gulp.task('build', function (done) {
console.log('Working!');
done();
});
gulp.task('watch', function () {
watch('app/*.js', function () {
gulp.start('build');
});
});
Run Code Online (Sandbox Code Playgroud)
(并添加'完成'回调build以让Gulp知道你何时完成).
顺便说一句......我不确定,但我认为gulp-watch不仅要看文件,还要直接返回乙烯基物体.所以实际使用内置gulp.watch应该具有相同的效果:
gulp.task('watch', function () {
gulp.watch('app/**/*.js', ['build']);
});
Run Code Online (Sandbox Code Playgroud)
小智 9
对我来说,这是为任务添加“返回”:
gulp.task('styles', function(){
return gulp.src('css/styles.css')
.pipe(autoprefixer())
.pipe(gulp.dest('build'));
});
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,并使用相同的ddprrt.区别在于使用目录通配符作为绝对路径.
我改变了这个:
gulp.task('watch', function() {
gulp.watch('sass/shortcutcss/*.scss', ['sass'])
});
Run Code Online (Sandbox Code Playgroud)
对此:
gulp.task('watch', function() {
gulp.watch('sass/**/*.scss', ['sass'])
});
Run Code Online (Sandbox Code Playgroud)