【发布时间】:2016-06-28 17:06:14
【问题描述】:
我有一个 Jekyll 站点,它是 Gulp 项目的一部分,它使用 BrowserSync 来预览该站点的构建。我的watch 语句之一查找对html 的更改,以便自动刷新站点。
gulp.watch('docs/_site/**/*.html').on('change', browserSync.reload);
按设计工作。
但是,当我更新header.html(或任何其他共享文件)时,浏览器会刷新多次次,因为所有页面都发生了变化。这是有道理的,因为所有静态页面都在更新。但我想在更新共享文件时防止这种情况发生。
有没有办法让 Gulp/BrowserSync 在共享 Jekyll 文件更新时只刷新一次?
更新
我的手表如下所示:
gulp.task('dev:watch', ['browserSync', 'docs:sass', 'docs:lib', 'docs:build'], function () {
gulp.watch(['scss/**/*.scss', 'docs/assets/**/*.scss'], ['dev:sass']);
gulp.watch(['docs/**/*.html', 'docs/**/*.md', '!docs/_site/**'], ['docs:build']);
gulp.watch('docs/_site/**/*.html').on('change', browserSync.reload);
});
docs:build 任务:
gulp.task('docs:build', function () {
browserSync.notify('Building Jekyll');
return spawn('jekyll', ['build', '--config', '_config.yml,_config_dev.yml', '--incremental'], {stdio: 'inherit'});
});
【问题讨论】:
标签: gulp jekyll gulp-watch browser-sync gulp-browser-sync