Panoramica
Una nuova app generata datwenty 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-sdkfornisce definizioni delle app, helper di runtime e integrazione del renderer. Usa il pacchettotwentyinstallato separatamente per i comandi CLI e gli strumenti di build/scaffolding.twenty-client-sdkviene 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.
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.