Как настроить browser-sync для удаленного сервера?
У меня есть сервер с битриксом на бэкенде, практически все инструменты для комфортной разработки клиентской части я настроил, вся работа осуществляется на сервере. Необходимо сделать hot-reload, но не получается подружить browser-sync с бэкендом, возможно ли это, и как? Сборка всего фронта на gulp.
Александр Золотых: нет, а в этом есть смысл? мне кажется, что я не правильно что-то в настройках browserSync делаю. Вместо server, я указываю прокси, и что ещё необходимо, не понимаю:
gulp.task('hot:reload', function(){
browserSync.init({
proxy: "dev.example.ru"
});
browserSync.watch(path.build.src).on('change', browserSync.reload);
});
Александр Золотых: Как я понимаю есть существующий висящий не на локальной машине сервер (сервер разработки) со связкой nginx - php-fpm
Алексей хочет редактировать файлы на этом сервере, чтобы хот релоад ему в браузере показывал сразу изменения.
Можете объяснить зачем тут 3000 порт и какова общая концепция работы такого формата по вашему мнению?
Евгений:
3000 - порт по умолчанию, выдаваемый browserSync если разработчик не указал иной порт.
Почему bs выдает порт? Потому что он встраивает скрипт web-сокетов, чтобы посылать на фронт команду перезагрузки, он не может "вклиниться" в дефолтный маршрут nginx -> application, поэтому он проксирует со своего порта все запросы на nginx -> application, получает от него ответ и возвращает ответ на соединение по своему порту.
По 80-порту по которому обычно открывается сайт для всех bs работать не будет, если все не перенастроить.
Евгений: здесь особо он и не нужен, если вы в опциях не указывали порт, то он 3000, весь конфиг надо делать в nginx, можно даже не пробрасывать порт, а сделать поддомен dev.site.ru и с него направлять на localhost:3000
Александр Золотых: не совсем понимаю должна быть схема какая? браузер:3000->bs->nginx(по какому-то порту, не 3000. по какому?)->php и так же обратно?
т.е. конфиг nginx помимо 80 порта http должен слушать еще какой-то порт по которому bs ему данные проксирует?