Ich habe eine Jekyll-Site, die Teil eines Gulp-Projekts ist und BrowserSync verwendet, um eine Vorschau der Site anzuzeigen, während sie erstellt wird. Eine meiner watch
-Anweisungen sucht nach Änderungen an der html
, um die Website automatisch zu aktualisieren.BrowserSync nur einmal neu laden, wenn Jekyll in Gulp für freigegebene Datei verwendet wird Update
gulp.watch('docs/_site/**/*.html').on('change', browserSync.reload);
Funktioniert wie geplant.
Allerdings, wenn ich header.html
(oder eine andere freigegebene Datei) aktualisiere der Browser aktualisiert werden mehr mal da all die Seiten gewechselt. Dies ist sinnvoll, da alle statischen Seiten aktualisiert werden. Aber ich möchte dies beim Aktualisieren einer freigegebenen Datei verhindern.
Gibt es eine Möglichkeit, dass Gulp/BrowserSync nur einmal aktualisiert wird, wenn eine gemeinsame Jekyll-Datei aktualisiert wird?
UPDATE
Meine Uhrenset wie folgt aussieht:
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);
});
Die docs:build
Aufgabe
gulp.task('docs:build', function() {
browserSync.notify('Building Jekyll');
return spawn('jekyll', ['build', '--config', '_config.yml,_config_dev.yml', '--incremental'], {stdio: 'inherit'});
});
Hallo David. Ich laufe nicht "jekyll serve", es ist nur eine Jekyll basierte Seite (meine Formulierung könnte verwirrend gewesen sein). Gulp bearbeitet das Kompilieren (durch den Build-Prozess) und die Site wird (während des Entwickelns) von BrowserSync bedient. –
Und wie Änderungen in _site passieren? schau zu -> jekyll build? Können wir Ihren Code sehen? –
Ich habe meine Frage mit den Aufgaben "Uhr" und "Bau" aktualisiert. Vielen Dank! –