zombiebox
Version:
ZombieBox is a JavaScript framework for development of Smart TV and STB applications
101 lines (74 loc) • 7.38 kB
Markdown
Console commands
===
### zb init
Инициализация проекта с интерактивным вводом параметров, необходимых для
создания изначальной структуры директорий и файлов. Создает директории
.code-cache, app, dist, web, а также директории для сцен, попапов,
виджетов, класс глобального объекта приложения (application.js) и
начальный файл стилей (application.css).
### zb build [platform list] [--enableConsole]
Сборка приложения для публикации под конкретные платформы (можно указать
несколько через знак пробела).
Процесс сборки можно условно разделить на два шага:
- Компиляция исходного кода;
- Передача обработки платформе - создание специфичных артефактов или
осуществление обработки скомпилированного кода, например создание
файлов конфигурации платформы, преобразование исходного кода,
архивирование и т.д..
При сборке доступен опциональный флаг активации логирования
(*--enableConsole*), при наличии которого все лог-сообщения будут
обработаны, в противном случае - проигнорированы.
Путь до артефакта сборки:
dist/%application\_version%/%platform\_name%/index.html. Там же могут
находится артефакты, созданные самой платформой.
Для процесса сборки существует возможность создания хуков. Для этого
следует создать в корневом каталоге файлы prebuild.js и postbuild.js для
обработки до компиляции и после, соотвественно. Файлы хуков должны быть
node модулем и принимать на вход функцию обратного вызова процесса и
объект данных сборки.
В процессе компиляции все JS файлы приложения, а также фреймворка и
платформы будут сжаты и оптимизированы с требуемым уровнем уровня
оптимизации (по умолчанию ADVANCED\_OPTIMIZATIONS) с помощью<abbr title='Google Closure Compiler'>GCC</abbr>, <abbr title='Cascading Style Sheets'>CSS</abbr> файлы будут минифицированы, а ссылки на
изображения, содержащиеся в <abbr title='Cascading Style Sheets'>CSS</abbr>, заменены на base64.
### zb run
Запускает web-based приложение, доступное по умолчанию по адресу
`http://localhost:1337` и являющееся platform agnostic. То есть,
приложение автоматически распознает текущую платформу, основываясь на
перечне подключенных платформ, и использует ее в процессе работы.
При данном виде разработки не происходит полноценной сборки приложения,
то есть, исходный код всегда будет актуальным, без необходимости
осуществлять дополнительные действия, когда вносятся изменения.
Дополнительно актуализировать исходный код помогают file watchers,
запускающиеся вместе с сервером и реагирующие на изменениями в .jst и
.css файлах. При наличии изменений происходит перекомпиляция шаблонов и
создание <abbr title='Cascading Style Sheets'>CSS</abbr> префиксов.
Также для web-based приложения есть возможность кастомизировать исходный
код с помощью файла web/dev.js. Его включение происходит после всех
основных файлов, но перед точкой входа в приложение, тем самым давая
возможность заменить любой метод или задать специфичную конфигурацию.
Обычно данный файл добавляется в .%choose\_your\_scv%ignore.
### zb buildCode
Генерирует boilerplate код приложения, компилирует файлы шаблонов,
создает <abbr title='Cascading Style Sheets'>CSS</abbr> префиксы, позволяющие забыть о проблемах кроссбраузерности
<abbr title='Cascading Style Sheets'>CSS</abbr> кода.
Генерируемый boilerplate код находится в директории .code\_cache и
влючает в себя скомпилированные шаблоны, а также следующие файлы:
- _**index.js**_ - точка входа (entry point). Инстанцирует глобальный
объект приложения, который будет доступен из глобальной переменной
app;
- _**base-application.js**_ - содержит класс, наследником которого
является глобальный объект приложения. В него инкапсулирована логика
по определению платформы и регистрация сцен (сцены, имеющие префикс
abstract, не регистрируются);
- _**package-info.js**_ - содержит информацию о приложении;
- _**autoprefixer.css**_ - сгенерированные префиксы для <abbr title='Cascading Style Sheets'>CSS</abbr> файлов.
В случае запуска web-based приложения командой *zb run* или сборки под
платформу командой *zb build,* нет необходимости в выполнении этой
команды, так как она является частью соответствующего процесса.
### zb addScene, zb addPopup, zb addWidget [name] [--base %baseclass%]
Генерирует boilerplate код для выбранной сущности. Параметр name может
содержать несколько значений, разделенных пробелом, так, например, при
вызове `zb addWidget my darling widget` будет сгенерирован виджет
*%project\_namespace%.widgets.MyDarlingWidget*.
_**zb-log-server**_
Поднимает сервер, которые слушает входящие логи.