Как запустить локальный сервер и открыть его в браузере из скрипта оболочки
У меня есть набор тестов, который работает в браузере (используя QUnit, хотя это неважно). Набор тестов требует локального сервера, работающего на определенном порту. Запуск тестов в настоящее время включает в себя несколько шагов:
node test/server
- переключиться на браузер выбора
- открыть localhost:3000
Я хотел бы иметь одну команду, которая запускает сервер, а затем работает open localhost:3000
, В идеале процесс узла должен оставаться на переднем плане, чтобы его можно было убить с помощью ^C. У меня нет хорошего понимания подоболочек, поэтому я не уверен, возможно ли это.
2 ответа
Если я правильно понимаю, вы хотите:
- запустить службу node.js
- запустить браузер
- посетите сервис в браузере
Сначала запустите браузер после заданной задержки. Затем запустите службу и дайте ей работать на переднем плане. Оператор с двойным амперсандом заставляет команду "next" ждать завершения "первой" команды с кодом 0, тогда как одиночный амперсанд означает "запуск в фоновом режиме". Мы можем использовать это, чтобы купить сервис, чтобы прогреться, прежде чем браузер попытается получить к нему доступ.
#!/bin/sh
awhile=3
sleep $awhile && firefox http://localhost:3000/ &
node netservice.js
Если это поможет, вы можете думать о foo && bar &
как асинхронный вызов, который гарантирует, что foo завершится до вызова bar.
В инструкциях говорится, чтобы открыть ваш браузер по выбору, как в веб-браузере, а именно Firefox, Chrome, гм... Internet Explorer.
Шаги 2 и 3 вообще не являются командной строкой. Шаг 3 - вставить localhost:3000 в адресную строку браузера. Вы можете оставить узел работающим в оболочке или добавить '&', который запустит процесс и вернет вас к приглашению.