Vai al contenuto principale

Componenti

I componenti sono le parti eseguibili della tua app. Ogni componente ha un type che determina come viene eseguito.

Componenti UI

Un componente UI è un frontend web — React, Vue, Svelte, HTML puro, o qualsiasi framework che serve su una porta.
{ name: 'Dashboard', type: 'ui', path: '.', runtime: { dev: 'bun run dev' } }
  • Max 1 per app — Kazzle assegna un singolo URL di anteprima per app
  • runtime.dev — comando per il server di sviluppo (usato da “Avvia anteprima”)
  • runtime.run — comando per servire la build di produzione
Se runtime.dev non è impostato, il sistema di anteprima esegue bun run dev dal tuo package.json.

Componenti di processo

Un componente di processo è un servizio backend, worker, o attività pianificata.
{ name: 'API', type: 'process', path: './server/index.ts' }

Ciclo di vita: processMode

Un componente di processo ha uno di due cicli di vita:
  • processMode: 'persistent' (predefinito) — server HTTP a lunga esecuzione. I trigger vengono inviati tramite POST al server in esecuzione al path dichiarato.
  • processMode: 'triggered' — lo script di ingresso viene generato per trigger e termina. Nessuna macchina inattiva in produzione.

Trigger

I trigger di pianificazione e webhook sono dichiarati sul componente. Un componente può avere molti trigger. Ogni trigger ha un name (univoco all’interno del componente) e un 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 è obbligatorio per processMode: 'persistent'. Per processMode: 'triggered' viene omesso — lo script legge TRIGGER_NAME dall’ambiente. Vedi Automazioni per il modello di trigger completo, il contratto delle variabili di ambiente, e l’intestazione di autenticazione HTTP.

Comandi di runtime

FaseQuando viene eseguitoEsempio
devDurante l’anteprima in bozzabun run dev, vite, next dev
runIn produzionebun run start, node dist/server.js
Gli script di pacchetto dell’anteprima in bozza possono usare kazzle run -- <command> così Kazzle può iniettare le porte locali e gli URL dei componenti fratelli. I componenti di processo di produzione devono dichiarare il comando reale in runtime.run perché il deploy esegue quel comando nell’immagine di produzione.