Vai al contenuto principale

Panoramica

Una nuova app generata da twenty app init si presenta così:

File principali

L’organizzazione dei file dipende da te. Le cartelle sopra sono convenzioni — la CLI rileva le entità tramite analisi AST sulle chiamate a export default defineEntity(...) indipendentemente da dove si trova il file.

Dipendenze

twenty app init inserisce twenty-sdk, twenty-client-sdk e twenty-ui in devDependencies, bloccati alla versione dell’SDK selezionata da quella versione della CLI. Mantieni le versioni generate per una nuova app e mantieni tutti e tre i pacchetti sincronizzati durante l’aggiornamento. La CLI può ricevere versioni patch in modo indipendente, quindi la sua versione non deve necessariamente corrispondere a quella di questi pacchetti. Il valore engines.twenty generato imposta la versione minima del server alla versione major e minor di quell’SDK. I flussi di lavoro GitHub Actions generati bloccano separatamente la CLI.
  • twenty-sdk fornisce definizioni delle app, helper di runtime e integrazione del renderer. Usa il pacchetto twenty installato separatamente per i comandi CLI e gli strumenti di build/scaffolding.
  • twenty-client-sdk viene importato dal codice della tua app (CoreApiClient, MetadataApiClient, RestApiClient), ma Twenty lo fornisce a runtime: le funzioni di logica lo ricevono da un layer SDK generato e i componenti di front-end lo risolvono da moduli forniti dal server. La copia installata viene utilizzata solo per il type checking e per la build al momento del deploy, quindi non è mai necessario includerla nel bundle distribuito.
Mantenere uno qualsiasi dei pacchetti sotto dependencies lo inserisce nel bundle di runtime dell’app installata, dove rappresenta solo zavorra. twenty app build emette un avviso quando uno dei due è ancora elencato sotto dependencies. Aggiungi come di consueto le dipendenze di runtime proprie della tua app (librerie che le tue funzioni di logica importano effettivamente a runtime) sotto dependencies. Mantieni l’albero snello: le dependencies vengono installate in un livello di runtime con un limite di 250 MB non compressi e una sincronizzazione o un’installazione non va a buon fine con un errore di dimensione delle dipendenze oltre tale soglia — le librerie UI e gli strumenti di sviluppo appartengono a devDependencies.