Utilizarea pachetelor npm
Puteți instala și utiliza orice pachet npm în aplicația dvs. Atât funcțiile logice, cât și componentele frontend sunt împachetate cu esbuild, care integrează toate dependențele în output — nu sunt necesarenode_modules la rulare.
Instalarea unui pachet
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Cum funcționează împachetarea
Pasul de build folosește esbuild pentru a produce un singur fișier autonom pentru fiecare funcție logică și pentru fiecare componentă frontend. Toate pachetele importate sunt integrate în bundle. Funcțiile logice rulează într-un mediu Node.js. Modulele built-in Node (fs, path, crypto, http etc.) sunt disponibile și nu trebuie instalate.
Componentele frontend rulează într-un Web Worker. Modulele built-in Node nu sunt disponibile — doar API-urile de browser și pachetele npm care funcționează într-un mediu de browser.
Ambele medii au twenty-client-sdk/core și twenty-client-sdk/metadata disponibile ca module pre-furnizate — acestea nu sunt incluse în bundle, ci sunt rezolvate la rulare de către server.
Configurare
Aplicația generată (scaffolded) include deja Vitest. Dacă o configurați manual, instalați dependențele:vitest.config.ts în rădăcina aplicației:
vitest.config.ts
src/__tests__/setup-test.ts
API-uri SDK programatice
Subcaleatwenty-sdk/cli exportă funcții pe care le puteți apela direct din codul de test:
| Funcție | Descriere |
|---|---|
appBuild | Construiți aplicația și, opțional, împachetați un tarball |
appDeploy | Încărcați un tarball pe server |
appInstall | Instalați aplicația în spațiul de lucru activ |
appUninstall | Dezinstalați aplicația din spațiul de lucru activ |
success: boolean și fie data, fie error.
Scrierea unui test de integrare
Iată un exemplu complet care construiește, distribuie și instalează aplicația, apoi verifică faptul că aceasta apare în spațiul de lucru:src/__tests__/app-install.integration-test.ts
Rularea testelor
Asigurați-vă că serverul Twenty local rulează, apoi:Verificarea tipurilor
Puteți rula și verificarea tipurilor pe aplicație fără a rula testele:tsc --noEmit și raportează orice erori de tip.
CI cu GitHub Actions
Scaffolderul generează un workflow GitHub Actions gata de utilizare în.github/workflows/ci.yml. Rulează automat testele de integrare la fiecare push pe main și la pull request-uri.
Workflow-ul:
- Preia codul
- Pornește un server Twenty temporar folosind acțiunea
twentyhq/twenty/.github/actions/spawn-twenty-docker-image - Instalează dependențele cu
yarn install --immutable - Rulează
yarn testcuTWENTY_API_URLșiTWENTY_API_KEYinjectate din rezultatele acțiunii
.github/workflows/ci.yml
spawn-twenty-docker-image pornește un server Twenty efemer direct în runner și oferă detaliile de conectare. Secretul GITHUB_TOKEN este furnizat automat de GitHub.
Pentru a fixa o versiune Twenty specifică în loc de latest, modificați variabila de mediu TWENTY_VERSION din partea de sus a workflow-ului.