Сервер для просмотра сайтов в контексте 4game.com
Запускает специальный сервер в указанной папке, который каждый запрашиваемый ресурс пропускает через процесс импорта на сайт 4game.com. Таким образом, можно смотреть на статический сайт так, будто он находится на http://ru.4game.com со всем необходимым окружением.
Установка
Сервер работает на всех актуальных версиях Node.js (0.12–5.x).
- Установить Node.js
- Установить Git.
- В консоли (желательно в Git Bash, который устанавливается вместе с Git) выполнить команду
npm install -g 4game-server
Запуск
Для запуска достаточно в консоли перейти в папку с одним из проектов 4game и выполнить команду 4game-server
. Если всё в порядке, вы увидите сообщение вроде
Starting server http://localhost:8082 at /Users/4game/4game-aion/out
Это значит, что теперь по адресу http://localhost:8082 будет отображаться сайт, который находится в папке /Users/4game/4game-aion/out
. По умолчанию сервер запускается в текущей папке, однако оп пытается определить, находимся ли мы в основной папке проекта и используется ли сборка проекта: в этом случае сервер запустится в папке ./out
.
Параметры запуска
4game-server [DIR] [OPTIONS]
DIR
— папка, в которой нужно запустить сервер. По умолчанию используется текущая папка.
Дополнительные опции:
--port
— HTTP-порт, на котором нужно поднять сервер (по умолчанию 8082)--host
— Хост, с которого нужно брать общиие ресурсы сайта и который используется как бэкэнд (по умолчанию https://ru.4game.com
)--area
– Площадка сайта (ru
, eu
, br
)--lang
– Язык сайта--env
— Окружение сайта (live
или qa
)
Локальная разработка
Начиная с версии 1.1, 4game server позволяет практически полностью отвязаться от локально запущенной версии 4game, даже если для разработки требуется использовать кастомные версии библиотек, подключаемых на 4game (например, 4game-common
, 4game-components
и т.д.):
- Если сайт является игровым (Aion, Point Blank и т.д.), то страницы можно просматривать и с префиксом игры. Например, запрос
/pointblank/play/
покажет то же самое, что и /play/
. Это удобно для правильной инициализации конмонентов 4game, которые название игры получают из URL-префикса. Название игры (префикс) нужно обязательно указать в ключе gameData/key
файла metadata.xml
, именно это значение и будет использоваться для локального резолвинга адресов. - Перед тем, как запросить файл с удалённого сервера (например,
packages/4game-common/jquery/jquery.min.js
), проверяется наличие этого файла в document root (как правило, это папка /out
). Таким образом, можно ставить в папке с сгенерированным сайтом симлинки на отдельные пакеты и проверять, как они работают с сайтом. - Если в
node_modules
сайта подключить 4game-site-import
(например, через npm link 4game-site-import
), то именно эта версия будет использоваться в 4game server.