Uso dei pacchetti npm
Puoi installare e usare qualsiasi pacchetto npm nella tua app. Sia le funzioni logiche sia i componenti front-end vengono impacchettati con esbuild, che incorpora tutte le dipendenze nell’output — non sono necessari inode_modules a runtime.
Installazione di un pacchetto
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Come funziona il bundling
La fase di build usa esbuild per produrre un singolo file autonomo per ogni funzione logica e per ogni componente front-end. Tutti i pacchetti importati sono incorporati nel bundle. Le funzioni logiche vengono eseguite in un ambiente Node.js. I moduli integrati di Node (fs, path, crypto, http, ecc.) sono disponibili e non necessitano di essere installati.
I componenti front-end vengono eseguiti in un Web Worker. I moduli integrati di Node non sono disponibili — solo le API del browser e i pacchetti npm che funzionano in un ambiente browser.
Entrambi gli ambienti hanno twenty-client-sdk/core e twenty-client-sdk/metadata disponibili come moduli preforniti — questi non vengono inclusi nel bundle ma vengono risolti a runtime dal server.
Impostazione
L’app generata tramite scaffolding include già Vitest. Se la configuri manualmente, installa le dipendenze:vitest.config.ts alla radice della tua app:
vitest.config.ts
~/.twenty/config.test.json) e sincronizzi l’app prima dell’esecuzione dei test:
src/__tests__/global-setup.ts
API programmatiche dell’SDK
Il sottopercorsotwenty-sdk/cli esporta funzioni che puoi chiamare direttamente dal codice di test:
Ogni funzione restituisce un oggetto risultato con
success: boolean e data oppure error.
Scrivere un test di integrazione
Ecco un esempio completo che compila, distribuisce e installa l’app, quindi verifica che compaia nello spazio di lavoro:src/__tests__/app-install.integration-test.ts
Esecuzione dei test
Assicurati che il tuo server Twenty locale sia in esecuzione, quindi:Controllo dei tipi
Puoi anche eseguire il controllo dei tipi sulla tua app senza eseguire i test:tsc --noEmit sul file tsconfig.json della tua app e riporta eventuali errori di tipo. Le app generate dallo scaffolder includono anche uno script yarn typecheck che copre anche i file di test (tsconfig.spec.json).
CI con GitHub Actions
Lo strumento di scaffolding genera un workflow pronto all’uso in.github/workflows/ci.yml. A ogni push su main e a ogni pull request, avvia un server Twenty effimero nel runner (tramite l’azione twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test), quindi esegue yarn lint, yarn typecheck, yarn test:unit e yarn test con TWENTY_API_URL / TWENTY_API_KEY che puntano a quel server. Non sono necessari segreti e puoi fissare la versione del server tramite la variabile di ambiente TWENTY_VERSION all’inizio del workflow.
Vedi Pubblicazione → CI/CD automatizzato per una spiegazione completa dei tre workflow generati dallo scaffolder (ci.yml, la pipeline di deploy cd.yml e publish.yml per la pubblicazione su npm).