Раньше я мог делать это в gulp-server-livereload , но теперь это больше не поддерживается и содержит ошибки, поэтому мне нужно перейти на другой локальный сервер разработки. Запрос функции: возможность автоматической навигации по измененному файлу · Проблема № 46 · hiddentao / gulp-server-livereload
live-server не имеет этой функциилибо Запрос функции: возможность автоматической навигации по измененному файлу · Выпуск # 304 · tapio / live-server
В браузер-синхронизация Мне удалось получить егозлоупотребляя .notify(msg, timeout)
// gulpfile.js
const gulp = require('gulp');
const bs = require('browser-sync').create();
function autoNavigate (cb) {
bs.init({
// Don't reload *.html, auto-navigate to changed instead
ignore: ['*.html', 'gulpfile.js']
notify: true
});
bs.watch('*.html', (event, file) => {
if (event === 'change') {
bs.notify(`<meta http-equiv="refresh" content="0; url=/${file}" />`);
}
if (event === 'add') {
bs.notify(`<meta http-equiv="refresh" content="0; url=/${file}" />`);
}
// Needs debouncing or else rename events 404
if (event === 'unlink') {
// File removed, navigate to index
bs.notify('<meta http-equiv="refresh" content="0; url=/" />');
}
});
cb();
}
exports.serve = autoNavigate;
Это хакерское решение, хотя и имеет преимущество, что оно только на стороне сервера. Любая страница может быть перемещена автоматически, без какого-либо кода на стороне клиента, для получения и интерпретации сообщений с сервера.
Есть ли правильный способ получить такое поведение? bs.reload('file-42.html
) `не работает. Я посмотрел на API, может быть, что-то я пропустил?