Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 7.48 KB

File metadata and controls

67 lines (54 loc) · 7.48 KB

Использование CLI

Elephize предоставляет command-line утилиту для упрощения использования и интеграции с другими инструментами. Примеры и флаги далее даны в предположении, что elephize установлена глобально (npm install -g @vkontakte/elephize) либо используется из скрипта в вашем package.json.

Базовое использование

Запустить с конфиг-файлом .elephizerc:

elephize -c .elephizerc

После выполнения команды по указанному пути будет создан bootstrap-файл, который необходимо подключить единожды в ваш проект через require_once (это необходимо для подключения файлов стандартной библиотеки), а также будут созданы транспилированные файлы.

Флаги командной строки:

Полный Краткий Параметр Тип Пояснение
--bail -e none/warn/error string Задает уровень ошибок, при котором процесс завершится с ошибочным кодом возврата. По умолчанию - none
--baseDir -b DIR string Задает базовый путь проекта для корректного разрешения относительных путей.
--config -c FILE string Путь до файла конфигурации, по умолчанию .elephizerc.
--encoding -l ENC string Задает кодировку для php-файлов. Полезно в случае, если ваш бэкенд использует не utf8 кодировку.
--help -h bool Показать инструкцию
--noZap -z bool Отключает unused code elimination
--outDir -d DIR string Определяет путь, по которому будут созданы сгенерированные php-файлы
--output -o FILE string Определяет место, куда записать bootstrap-файл. Если файл уже существует, он будет перезаписан. По умолчанию выводит в stdout.
--quiet -q bool Не показывать ошибки транспиляции.
--rootNs -n NAME string Задает namespace для сгенерированных классов. По умолчанию - `\VK\Elephize'
--src -s GLOB string Список точек входа, которые нужно обработать. Принимает quoted glob в качестве параметра (например '*.entry.ts')
--verboseTypehints -t bool Показывать подробные отладочные сообщения от подсистемы вывода типов
--verboseUsage -u bool Показывать подробные отладочные сообщения от подсистемы unused code elimination
--verbose -v bool Показывать подробные сообщения от транспилятора.
--watch -w bool Запустить elephize в режиме инкрементальной перекомпиляции изменяющихся файлов (watch mode)

Файл конфигурации

Файл конфигурации представляет из себя обычный JSON-файл. Состав файла конфигурации полностью совпадает с флагами командной строки (ключом объекта должно быть полное наименование параметра). Пример можно посмотреть в файле elephizerc.example.json или в папке demo.

Дополнительные параметры для файла конфигурации:

Ключ Тип Пояснение
aliases { [string]: string } Алиасы путей для сгенерированных файлов. Полезно в тех случаях, когда на бэкенде файлы нужно разложить иначе, чем на фронтенде.
ignoreImports string[] Список глобов, путей к модулю или идентификатов модулей, которые следует проигнорировать.
replaceImports { [string]: ReplaceRule } Правила замены имплементации для указанного в ключе идентификатора модуля или пути к модулю.
tsPaths { [string]: string[] } В этот параметр должен передаваться тот же объект, что и в параметре paths в вашем tsconfig. Параметр нужен для поддержки сокращенных путей в import-конструкциях.
hooksIncludePath string Путь к файлу, содержащему код хуков обхода AST
sourceExtensions string[] Список расширений файлов, которые нужно обрабатывать. По умолчанию: ['.ts', '.tsx', '.js', '.jsx']

Формат типа ReplaceRule следующий:

{
    // ...
    'replacedModule': {
        implementationPath: '../../Impl.php', // string 
        implementationClass: 'ImplModule', // string 
    },
    '../../path/to/replacedModule': {
        implementationPath: '../../Impl2.php', // string 
        implementationClass: 'Impl2Module', // string
    },
    // ...
}

Демонстрация

В папке demo можно найти минимальный готовый сконфигурированный проект, который удобно взять за основу.