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

Компоненты

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

UI компоненты

UI компонент — это веб-интерфейс на React, Vue, Svelte, простом HTML или любом фреймворке, работающем на порту.
{ name: 'Dashboard', type: 'ui', path: '.', runtime: { dev: 'bun run dev' } }
  • Максимум 1 на приложение — Kazzle назначает один URL предпросмотра на приложение
  • runtime.dev — команда для dev-сервера (используется функцией “Запустить предпросмотр”)
  • runtime.run — команда для запуска production-сборки
Если runtime.dev не установлен, система предпросмотра запускает bun run dev из вашего package.json.

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

Процессный компонент — это backend-сервис, воркер или запланированная задача.
{ name: 'API', type: 'process', path: './server/index.ts' }

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

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

Триггеры

Триггеры расписания и вебхука объявляются на компоненте. Один компонент может содержать много триггеров. Каждый триггер имеет name (уникальное в пределах компонента) и kind.
{
  name: 'events',
  type: 'process',
  path: './components/events/index.ts',
  processMode: 'persistent',
  triggers: [
    { name: 'cleanup', kind: 'schedule', schedule: '0 * * * *', path: '/cron/cleanup' },
    { name: 'stripe',  kind: 'webhook',                          path: '/webhook/stripe' },
  ],
}
path обязателен для processMode: 'persistent'. Для processMode: 'triggered' он опускается — скрипт читает TRIGGER_NAME из переменных окружения. Полную модель триггеров, контракт переменных окружения и заголовок аутентификации HTTP см. в разделе Автоматизация.

Команды runtime

ФазаКогда запускаетсяПример
devВо время предпросмотра черновикаbun run dev, vite, next dev
runВ productionbun run start, node dist/server.js
Скрипты пакета для предпросмотра черновика могут использовать kazzle run -- <command>, чтобы Kazzle мог внедрить локальные порты и URL соседних компонентов. Процессные компоненты production должны объявлять реальную команду в runtime.run, потому что развертывание запускает эту команду в production-образе.