Вдохновившись
этой серией статей, меня посетила идея приобщить всех знакомых дизайнеров/верстальщиков/разработчиков к великому к консоли. И начать я решил с самого вкусного - с синхронизации браузеров. На самом деле, утилит, каким-то образом помогающих работать веб-девелоперам, много и рассказать про каждую просто невозможно, но ведь главное в этом деле заинтересовать;)
Вспомните, как обычно происходит верстка макета? Вносим изменения в css. Сохраняем. Переключаемся на Chrome. Обновляем страницу. Тестируем. Переключаемся на Firefox. Обновляем страницу. Тестируем. Переключаемся на IE. Обновляем страницу. Тестируем. Повторяем сначала.
Каждый может делать это по-разному, но суть останется прежней: тестирование в разных браузерах очень долгий и муторный процесс. Но мы с вами сейчас попробуем его немного оптимизировать. И в этом нам поможет утилита browser-sync. Как можно прочитать на их сайте, программа умеет не только отслеживать изменения в файлах проекта и автоматически перезагружать вкладки, но и позволяет синхронизировать навигацию в каждом браузере. Вот так это работает:
Более того, можно тестировать на нескольких устройствах, использующих общее подключение: телефоны, планшеты, компьютеры с разными мониторами. Все что нужно для их синхронизации: открыть url, предоставляемый этой утилитой.
Установка browser sync
Надеюсь я успел вас достаточно заинтересовать, потому что почти все, что мы будем делать ниже, может испугать:) Нужная нам утилита является модулем для Node.js. Для её установки нам потребуется пакетный менеджер npm, поставляемый с нодой. Кто знает что это такое, может сразу перейти на сайт http://www.browsersync.io/ и следуя простым инструкциям (нет, действительно, всего три шага) установить и настроить. Для тех кто никогда не слышал ни о npm, ни о Node.js, быстро пробежимся по установке.
Для начала идем на сайт Node.js, скачиваем и устанавливаем. Тут ничего сложного: далее, далее, далее, готово. Откройте консоль (я пользуюсь встроенный в PhpStorm) и выполните команду:
npm install -g browser-sync
Это команда установит browser-sync. Если в консоли появилось "'npm' не является внутренней или внешней командой...", просто перезагрузите компьютер и попробуйте снова.
Если все прошло удачно, поздравляю, все установлено и готово к работе. Ничего ведь сложного?
Настройка browser sync
Теперь откроем в консоли папку проекта (Shift + правый клик на папке, дальше - Открыть окно команд) и запустим browser-sync. Тут есть два варианта: если вы верстаете статичные файлы (*.html, *.css и др.) и если вы делаете динамику (*.php, например). В первом случае, для запуска утилиты в серверном режиме, выполните команду:
browser-sync start --server --files "*.css, *.html"
В консоли вы увидите url адреса для синхронизации, а также в вашем браузере по умолчанию откроется вкладка с индексовой страницей проекта:
Помните, я говорил, что можно синхронизировать навигацию всех браузеров? Настраивается это здесь: переход по ссылкам, отправка форм, скроллинг.
Теперь, если вы используете локальный сервер, и вам нужно синхронизировать браузеры при изменении php (или других) файлов, необходимо использовать режим proxy:
browser-sync start --proxy "myproject.dev" --files "*.css, *.html, *.php, *.js"
Browser-sync имеет множество настроек, описывать их я не буду, просто дам ссылку: http://www.browsersync.io/docs/command-line/. Там же можно посмотреть и примеры использования.
Для выхода из программы, в окне консоли нажмите Ctrl+C, и введите y в ответ на подтверждение выхода.
А вообще можно както сразу видеть как отображется адаптивная верстка на экране телефона? Есть ли способы подключить телефон напрямую?
почему то не подключается к сайту через телефон
По идее нужно подключиться к той же сетке (удобно пользоваться wifi) и перейти по тому же адресу (localhost:3000).
БЫСТРЫЙ способ АВТООБНОВЛЕНИЯ странички, при написании кода html css js, чекайте)
Новичкам. Обычно по умолчанию цепляется index.html. В адресной строке - localhost:3000. Если надо второй отслеживать, например, index2.html, то если он в этой же директории, введите в адресной строке localhost:3000/index2.html
Спасибо! Помог!
Не помогло
А у меня не хочет работать. В браузере ошибка Пишет: Cannot GET /
Заметил что в строчке Ui External не Адрес ip, как у многих, а такая штука.
Подскажите в чем причина, Node переустанавливал, все команды по списку...(((
Ошибка была, что фаил index.html находился не в корневой папке
Как сделать такую сетку окон браузера?
На самом деле без каких-то дополнительных инструментов: просто перетаскиванием окон на удобное место)
Все поставил, запустил, файлы отслеживаются, а браузер не обновляется автоматом. только в ручную по кнопке синхронизировать. фигня какая то!
Возможно, вы неправильно указали маску файлов отслеживания.
ах если бы, вот смотрите, видит же он изменения, а перезагрузки окна нет
С gulp'om однажды получил такую проблему, когда для Wordpress темы указал 2 body
Консоль работает, а браузер сам не обновляет.
спасибо большое, статейка годная, здорово выручила!)
Спасибо!
Очень полезная статья!
Спасибо!
Отличная статья!!!
Спасибо)