4game-server

Сервер для просмотра сайтов в контексте 4game

Usage no npm install needed!

<script type="module">
  import gameServer from 'https://cdn.skypack.dev/4game-server';
</script>

README

Сервер для просмотра сайтов в контексте 4game.com

Запускает специальный сервер в указанной папке, который каждый запрашиваемый ресурс пропускает через процесс импорта на сайт 4game.com. Таким образом, можно смотреть на статический сайт так, будто он находится на http://ru.4game.com со всем необходимым окружением.

Установка

Сервер работает на всех актуальных версиях Node.js (0.12–5.x).

  1. Установить Node.js
  2. Установить Git.
  3. В консоли (желательно в 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.