延迟 gulp 观看
Delay in gulp watch
目前我正在工作 ftp 和 运行 gulp 在服务器上观看,现在的问题是当我的 gulp 手表正在检测更改文件时尚未准备好上传,所以我的 gulp 手表需要延迟。
gulp.task('watch', function() {
setTimeout(function() {
gulp.watch(config.js.app.pathIn + '/**/*.js', ['js_app']);
gulp.watch(config.js.vendor.pathIn + '/**/*.js', ['js_vendor']);
gulp.watch(config.scss.pathIn + '/**/*.scss', ['scss']);
}, 3000);
});
这不是延迟文件的渲染,我如何确保在渲染文件时有延迟?
Gulp-wait 看起来对你有用。将其插入您的三个任务的顶部。
gulp.task('watch', function() {
gulp.watch(config.js.app.pathIn + '/**/*.js', setTimeout(function() {
gulp.start('scss')
}, 3000)
});
如果您需要 setTimeout 方法,以上 可能 有效,但它使用 gulp.start - 将从 gulp4.0 中删除。如果您使用 gulp4 并且只是在此处对您的任务而不是对 gulp.start 进行函数调用,就会容易得多。
但我建议gulp-等等。
在 Gulp 4 中,gulp.watch
接受一个选项对象,其中可以 define a delay
:
gulp.watch( someGlob, { delay: 500 }, someTask );
细则:
延迟仅适用于作为参数传递给 gulp.watch
的任务函数。它确实对在 gulp.watch
的 return 值上设置的事件处理程序有任何影响。换句话说,在
的选项中设置 delay
gulp.watch( globs, options, taskFunction );
有效,但是
let watcher = gulp.watch( globs, options );
watcher.on( "change", callback );
忽略 options.delay
。
那是因为 gulp.watch
return 是 chokidar
的一个实例,它不知道 gulp.watch
特定的选项(例如 delay
或 queue
).
如果您需要延迟特定事件的监视任务,请改为使用 events
选项进行设置:
gulp.watch( globs, { events: ["add", "change"], delay: 500 }, taskFunction );
目前缺少 event
选项 in the Gulp 4 docs but you'll find it in the documentation of glob-watcher
,提供监视功能的组件。
目前我正在工作 ftp 和 运行 gulp 在服务器上观看,现在的问题是当我的 gulp 手表正在检测更改文件时尚未准备好上传,所以我的 gulp 手表需要延迟。
gulp.task('watch', function() {
setTimeout(function() {
gulp.watch(config.js.app.pathIn + '/**/*.js', ['js_app']);
gulp.watch(config.js.vendor.pathIn + '/**/*.js', ['js_vendor']);
gulp.watch(config.scss.pathIn + '/**/*.scss', ['scss']);
}, 3000);
});
这不是延迟文件的渲染,我如何确保在渲染文件时有延迟?
Gulp-wait 看起来对你有用。将其插入您的三个任务的顶部。
gulp.task('watch', function() {
gulp.watch(config.js.app.pathIn + '/**/*.js', setTimeout(function() {
gulp.start('scss')
}, 3000)
});
如果您需要 setTimeout 方法,以上 可能 有效,但它使用 gulp.start - 将从 gulp4.0 中删除。如果您使用 gulp4 并且只是在此处对您的任务而不是对 gulp.start 进行函数调用,就会容易得多。
但我建议gulp-等等。
在 Gulp 4 中,gulp.watch
接受一个选项对象,其中可以 define a delay
:
gulp.watch( someGlob, { delay: 500 }, someTask );
细则:
延迟仅适用于作为参数传递给 gulp.watch
的任务函数。它确实对在 gulp.watch
的 return 值上设置的事件处理程序有任何影响。换句话说,在
delay
gulp.watch( globs, options, taskFunction );
有效,但是
let watcher = gulp.watch( globs, options );
watcher.on( "change", callback );
忽略 options.delay
。
那是因为 gulp.watch
return 是 chokidar
的一个实例,它不知道 gulp.watch
特定的选项(例如 delay
或 queue
).
如果您需要延迟特定事件的监视任务,请改为使用 events
选项进行设置:
gulp.watch( globs, { events: ["add", "change"], delay: 500 }, taskFunction );
目前缺少 event
选项 in the Gulp 4 docs but you'll find it in the documentation of glob-watcher
,提供监视功能的组件。