Passer au contenu principal

Composants

Les composants sont les parties exécutables de votre app. Chaque composant a un type qui détermine son mode d’exécution.

Composants UI

Un composant UI est un frontend web — React, Vue, Svelte, HTML pur, ou tout framework qui s’exécute sur un port.
{ name: 'Dashboard', type: 'ui', path: '.', runtime: { dev: 'bun run dev' } }
  • Max 1 par app — Kazzle assigne une URL de prévisualisation unique par app
  • runtime.dev — commande pour le serveur de développement (utilisée par « Démarrer la prévisualisation »)
  • runtime.run — commande pour servir la build de production
Si runtime.dev n’est pas défini, le système de prévisualisation exécute bun run dev depuis votre package.json.

Composants processus

Un composant processus est un service backend, un worker, ou une tâche planifiée.
{ name: 'API', type: 'process', path: './server/index.ts' }

Cycle de vie : processMode

Un composant processus a l’un de deux cycles de vie :
  • processMode: 'persistent' (par défaut) — serveur HTTP long-running. Les déclencheurs sont POSTés dans le serveur en cours d’exécution au path déclaré.
  • processMode: 'triggered' — le script d’entrée est lancé par déclencheur et se termine. Pas de machines inactives en production.

Déclencheurs

Les déclencheurs planifiés et webhook sont déclarés sur le composant. Un composant peut porter plusieurs déclencheurs. Chaque déclencheur a un name (unique au sein du composant) et 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 est requis pour processMode: 'persistent'. Pour processMode: 'triggered' il est omis — le script lit TRIGGER_NAME depuis l’environnement à la place. Voir Automations pour le modèle de déclencheur complet, le contrat des variables d’environnement, et l’authentification par en-tête HTTP.

Commandes runtime

PhaseQuand elle s’exécuteExemple
devPendant la prévisualisation de brouillonbun run dev, vite, next dev
runEn productionbun run start, node dist/server.js
Les scripts de package de prévisualisation de brouillon peuvent utiliser kazzle run -- <command> pour que Kazzle puisse injecter les ports locaux et les URLs des composants frères. Les composants processus de production doivent déclarer la vraie commande dans runtime.run car le déploiement exécute cette commande dans l’image de production.