Перейти к содержанию

build — Сборка пакета

Собирает transport.zip пакет из исходников компонента.

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

modxapp build <name> [options]

Опции

Опция Описание
--install Установить пакет после сборки (даже если в конфиге install = false)
--no-install Не устанавливать (даже если в конфиге install = true)
--export Извлечь элементы из БД перед сборкой (мягкий режим — не перезаписывает существующие)
--no-encrypt Собрать без шифрования (если в конфиге encrypt.enable = true). Файл получит постфикс -ne
--standalone Принудительно использовать standalone-сборщик
--no-check Пропустить проверки PHPStan/CS Fixer/ESLint

Флаги командной строки всегда приоритетнее конфига.

Примеры

# Собрать пакет
modxapp build mypackage

# Собрать и установить
modxapp build mypackage --install

# Собрать без шифрования (для тестирования)
# Результат: mypackage-1.0.0-pl-ne.transport.zip
modxapp build mypackage --no-encrypt

# Пропустить проверки
modxapp build mypackage --no-check

# Извлечь элементы из БД и собрать
modxapp build mypackage --export

Мягкий режим --export

При --export элементы из БД добавляются в файлы, но не перезаписывают уже описанные. Если элемент уже есть в файле — используется файловая версия. Новые элементы из БД дописываются.

Проверки перед сборкой

Перед сборкой автоматически запускаются проверки качества кода (если инструменты установлены):

  1. PHPStan — статический анализ
  2. PHP CS Fixer — проверка или автоисправление стиля (режим настраивается в package_builder/packages/<name>/config.php)
  3. ESLint — проверка JavaScript

Если проверка не прошла — сборка прерывается. Используйте --no-check для пропуска.

Подробнее: Инструменты разработки

Процесс сборки

  1. Загружает конфигурацию из packages/<name>/config.php
  2. Создаёт modPackageBuilder
  3. Регистрирует namespace компонента
  4. Создаёт категорию элементов
  5. Обрабатывает элементы (chunks, snippets, plugins, templates, TV, settings, menus, events, policies)
  6. Копирует файлы core/ и assets/ с фильтрацией по .packignore
  7. Добавляет резолверы
  8. Упаковывает в core/packages/<name>-<version>-<release>.transport.zip
  9. Устанавливает пакет (если указан --install)

Фильтрация файлов

При копировании файлов в transport-пакет применяется фильтрация через .packignore. Технические файлы (PHPStan, ESLint, node_modules и т.д.) исключаются автоматически.