Skip to main content

Компоненты

Компоненты — это исполняемые части вашего приложения. Каждый компонент имеет type, который определяет способ его запуска.

UI компоненты

UI компонент — это веб-интерфейс на React, Vue, Svelte, простом HTML или любом фреймворке, работающем на порту.
  • Максимум 1 на приложение — Kazzle назначает один URL предпросмотра на приложение
  • runtime.dev.command — команда для dev-сервера (используется функцией “Start preview”)
  • runtime.prod.build — команда для сборки production-образа
  • runtime.prod.command — команда для запуска production процессного компонента
Если runtime.dev.command не установлена, система предпросмотра запускает bun run dev из вашего package.json.

Процессные компоненты

Процессный компонент — это backend-сервис, воркер или запланированная задача.

Жизненный цикл: processMode

Процессный компонент имеет один из двух жизненных циклов:
  • processMode: 'persistent' (по умолчанию) — долгоживущий HTTP-сервер. Триггеры отправляются POST-запросами на работающий сервер по объявленному path.
  • processMode: 'triggered' — скрипт запускается для каждого триггера и завершается. Нет простаивающих машин в production.

Триггеры

Триггеры расписания и вебхука объявляются на компоненте. Один компонент может содержать много триггеров. Каждый триггер имеет name (уникальное в пределах компонента) и kind.
path обязателен для processMode: 'persistent'. Для processMode: 'triggered' он опускается — скрипт читает TRIGGER_NAME из переменных окружения. Полную модель триггеров, контракт переменных окружения и заголовок аутентификации HTTP см. в разделе Automations.

Команды runtime

Скрипты пакета draft-предпросмотра могут использовать kazzle run -- <command>, чтобы Kazzle мог внедрить локальные порты и URL соседних компонентов. Production процессные компоненты должны объявить реальную команду в runtime.prod.command, потому что deploy запускает эту команду в production-образе.