不确定 BrowserSync 主页上给出的示例
Unsure about example given on BrowserSync homepage
考虑 BrowserSync + Gulp 页面上关于 Browser Reloading
的 example,尤其是这一部分:
// use default task to launch BrowserSync and watch JS files
gulp.task('default', ['browser-sync'], function () {
// add browserSync.reload to the tasks array to make
// all browsers reload after tasks are complete.
gulp.watch("js/*.js", ['js', browserSync.reload]);
});
由于任务依赖项是 运行 异步的(此处:js
和 browserSync.reload),难道重新加载不会在 js
任务之前完成吗?
是的,根据文档,这是有可能的。
关闭同一页面...
(make sure you return the stream from your tasks to ensure the browser is reloaded at the correct time)
如果它是一个异步任务,它只会触发而不是 return 任何东西,观察者将不知道要刷新。或者它可能会在该过程完成之前重新加载。
要解决这个问题,您应该为您的任务添加回调。
gulp.task('somename', function() {
var stream = gulp.src('client/**/*.js')
.pipe(minify())
.pipe(gulp.dest('build'));
return stream;
});
只是 return 流所以 Gulp 知道发生了什么。然后为你想要的任务设置手表:
gulp.task('default', ['browser-sync'], function () {
// Watched tasks are run in parallel, not in series.
gulp.watch(['*.js'], ['somename', browserSync.reload]);
});
这些都包含在文档中:
https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support
考虑 BrowserSync + Gulp 页面上关于 Browser Reloading
的 example,尤其是这一部分:
// use default task to launch BrowserSync and watch JS files
gulp.task('default', ['browser-sync'], function () {
// add browserSync.reload to the tasks array to make
// all browsers reload after tasks are complete.
gulp.watch("js/*.js", ['js', browserSync.reload]);
});
由于任务依赖项是 运行 异步的(此处:js
和 browserSync.reload),难道重新加载不会在 js
任务之前完成吗?
是的,根据文档,这是有可能的。
关闭同一页面...
(make sure you return the stream from your tasks to ensure the browser is reloaded at the correct time)
如果它是一个异步任务,它只会触发而不是 return 任何东西,观察者将不知道要刷新。或者它可能会在该过程完成之前重新加载。
要解决这个问题,您应该为您的任务添加回调。
gulp.task('somename', function() {
var stream = gulp.src('client/**/*.js')
.pipe(minify())
.pipe(gulp.dest('build'));
return stream;
});
只是 return 流所以 Gulp 知道发生了什么。然后为你想要的任务设置手表:
gulp.task('default', ['browser-sync'], function () {
// Watched tasks are run in parallel, not in series.
gulp.watch(['*.js'], ['somename', browserSync.reload]);
});
这些都包含在文档中:
https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support