Перейти до основного вмісту

Компоненти

Компоненти — це виконавчі частини вашого додатка. Кожен компонент має 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-образі.