Skip to content

Команды

chef build

Сборка расширений с помощью Rollup, Babel и PostCSS.

bash
chef build [extensions...] [options]
ПараметрОписание
extensionsИмена расширений или glob-паттерны (main.core, ui.bbcode.*)
-w, --watchОтслеживать изменения и пересобирать
-p, --path [path]Собрать конкретную директорию
-v, --verboseПодробный вывод сборки
-f, --forceПропустить проверки и принудительно пересобрать
--productionProduction-режим (минификация, без source maps)
bash
chef build main.core ui.buttons    # Собрать конкретные расширения
chef build main.core -w            # Собрать и отслеживать изменения
chef build ui.bbcode.*             # Собрать расширения по паттерну
chef build                         # Собрать всё в текущей директории
chef build ui.buttons --production # Production-сборка

TIP

В zsh экранируйте glob-паттерны, чтобы предотвратить раскрытие оболочкой: chef build ui.\*

chef test

Запуск unit и E2E тестов через Playwright.

bash
chef test [extensions...] [options]        # unit + e2e
chef test unit [extensions...] [file?]     # только unit
chef test e2e [extensions...] [file?]      # только e2e
ПараметрОписание
extensionsИмена расширений или glob-паттерны
fileТолько для unit/e2e — имя файла с тестами (dom.test.ts)
-w, --watchОтслеживать изменения и перезапускать тесты
-p, --path [path]Тестировать конкретную директорию
--headedЗапускать с видимым окном браузера
--debugОткрыть браузер с DevTools и sourcemaps
--grep <pattern>Запускать только тесты, соответствующие паттерну
--project <names>Запускать в конкретных браузерах (chromium, firefox, webkit)
bash
chef test main.core ui.buttons                    # Все тесты
chef test unit main.core                          # Только unit
chef test unit main.core ./render-tag.test.ts     # Конкретный файл
chef test e2e ui.buttons                          # Только e2e
chef test ui.* --headed                           # С видимым браузером
chef test main.core -w                            # Watch-режим
chef test main.core --debug                       # Отладка с DevTools
chef test --grep "should render"                  # Фильтрация по имени
chef test main.core --project chromium firefox    # Конкретные браузеры

chef stat

Анализ размера бандла и дерева зависимостей расширений.

bash
chef stat [extensions...] [options]
ПараметрОписание
extensionsИмена расширений или glob-паттерны
-p, --path [path]Анализировать конкретную директорию
bash
chef stat main.core ui.buttons     # Анализ конкретных расширений
chef stat ui.*                     # Анализ группы

chef create

Создание нового расширения Bitrix со стандартной структурой файлов.

bash
chef create <name> [options]
ПараметрОписание
nameИмя расширения (my.extension)
-p, --path [path]Создать в указанной директории
-t, --tech [tech]Технология: ts (по умолчанию) или js
-f, --forceПерезаписать без подтверждения
bash
chef create my.extension                          # TypeScript-расширение
chef create my.extension --tech js                # JavaScript-расширение
chef create my.extension -p ./local/js/vendor     # В конкретной директории

Сгенерированные файлы:

my.extension/
├── bundle.config.ts
├── config.php
└── src/
    └── my.extension.ts

chef init

Инициализация окружения сборки и тестирования.

chef init build

Инициализация TypeScript, алиасов путей и browserslist.

bash
chef init build [options]
ПараметрОписание
-p, --path [path]Инициализировать в указанной директории

Команда:

  1. Сканирует все расширения в проекте
  2. Генерирует aliases.tsconfig.json с алиасами путей для каждого расширения
  3. Создаёт tsconfig.json с рекомендованными настройками
  4. Создаёт .browserslistrc с рекомендованными целевыми браузерами

Подробнее — в разделе TypeScript.

chef init tests

Инициализация тестового окружения Playwright.

bash
chef init tests [options]
ПараметрОписание
-p, --path [path]Инициализировать в указанной директории

Создаёт playwright.config.ts и .env.test в корне проекта.

Подробнее — в разделе Тестирование.

chef flow-to-ts

Миграция кода с типизацией Flow.js в TypeScript.

bash
chef flow-to-ts [options]
ПараметрОписание
-p, --path [path]Мигрировать конкретную директорию
--rm-tsУдалить существующие .ts файлы после миграции
--rm-jsУдалить оригинальные .js файлы после миграции

Что делает:

  • Удаляет аннотации типов Flow
  • Переименовывает .js файлы в .ts
  • Конвертирует синтаксис Flow в эквиваленты TypeScript

Распространяется под лицензией MIT.