Prezentare generală
O aplicație nouă generată detwenty app init arată astfel:
Fișiere cheie
Organizarea fișierelor ține de dvs. Folderele de mai sus sunt convenții —
CLI-ul detectează entitățile prin analiză AST pe apelurile
export default defineEntity(...)
indiferent unde se află fișierul.Dependențe
twenty app init adaugă twenty-sdk, twenty-client-sdk și twenty-ui în devDependencies, fixate la versiunea SDK selectată de acea versiune CLI. Păstrați versiunile generate pentru o aplicație nouă și mențineți toate cele trei pachete sincronizate la actualizare. CLI-ul poate primi versiuni patch în mod independent, astfel încât versiunea sa nu trebuie să corespundă cu cea a acestor pachete.
Elementul generat engines.twenty stabilește versiunea minimă de server la versiunea majoră și minoră a acelui SDK. Fluxurile de lucru GitHub Actions generate fixează separat versiunea CLI.
twenty-sdkoferă definiții de aplicații, ajutoare pentru timpul de execuție și integrare cu motorul de randare. Utilizați pachetultwentyinstalat separat pentru comenzile CLI și instrumentele de compilare/generare a structurii de bază.twenty-client-sdkeste importat de codul aplicației tale (CoreApiClient,MetadataApiClient,RestApiClient), dar Twenty îl furnizează la runtime — funcțiile de logică îl obțin dintr-un strat SDK generat, iar componentele de interfață îl rezolvă din module livrate de server. Copia instalată local este folosită doar pentru verificarea tipurilor și pentru build-ul la momentul de deploy, astfel că nu trebuie niciodată inclusă în bundle-ul livrat.
dependencies îl include în bundle-ul de runtime al aplicației instalate, unde reprezintă o încărcătură inutilă. twenty app build emite un avertisment atunci când oricare dintre ele este încă listat sub dependencies.
Adaugă dependențele de runtime proprii ale aplicației tale (bibliotecile pe care funcțiile tale de logică chiar le importă la runtime) sub dependencies, ca de obicei. Menține arborele suplu: dependencies sunt instalate într-un strat de execuție limitat la 250 MB necomprimat, iar o operațiune de sync sau install eșuează cu o eroare privind dimensiunea dependințelor dacă se depășește această limită — bibliotecile de UI și uneltele de dezvoltare trebuie să fie în devDependencies.