Verwendung von npm-Paketen
Sie können in Ihrer App beliebige npm-Pakete installieren und verwenden. Sowohl Logikfunktionen als auch Frontend-Komponenten werden mit esbuild gebündelt, das alle Abhängigkeiten in die Ausgabe einbettet — zur Laufzeit sind keinenode_modules erforderlich.
Ein Paket installieren
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Wie das Bundling funktioniert
Der Build-Schritt verwendet esbuild, um pro Logikfunktion und pro Frontend-Komponente eine einzelne, in sich geschlossene Datei zu erzeugen. Alle importierten Pakete werden in das Bundle eingebettet. Logikfunktionen laufen in einer Node.js-Umgebung. Eingebaute Node.js-Module (fs, path, crypto, http usw.) stehen zur Verfügung und müssen nicht installiert werden.
Frontend-Komponenten laufen in einem Web Worker. Eingebaute Node.js-Module sind nicht verfügbar — nur Browser-APIs und npm-Pakete, die in einer Browserumgebung funktionieren.
In beiden Umgebungen stehen twenty-client-sdk/core und twenty-client-sdk/metadata als vorab bereitgestellte Module zur Verfügung — sie werden nicht gebündelt, sondern zur Laufzeit vom Server aufgelöst.
Einrichtung
Die erzeugte App enthält bereits Vitest. Wenn Sie es manuell einrichten, installieren Sie die Abhängigkeiten:vitest.config.ts im Stammverzeichnis Ihrer App:
vitest.config.ts
src/__tests__/setup-test.ts
Programmgesteuerte SDK-APIs
Der Subpfadtwenty-sdk/cli exportiert Funktionen, die Sie direkt aus Testcode aufrufen können:
| Funktion | Beschreibung |
|---|---|
appBuild | Die App bauen und optional ein Tarball erstellen |
appDeploy | Ein Tarball auf den Server hochladen |
appInstall | Die App im aktiven Arbeitsbereich installieren |
appUninstall | Die App aus dem aktiven Arbeitsbereich deinstallieren |
success: boolean und entweder data oder error zurück.
Einen Integrationstest schreiben
Hier ist ein vollständiges Beispiel, das die App baut, bereitstellt und installiert und anschließend prüft, dass sie im Arbeitsbereich erscheint:src/__tests__/app-install.integration-test.ts
Tests ausführen
Stellen Sie sicher, dass Ihr lokaler Twenty-Server läuft, und führen Sie dann Folgendes aus:Typprüfung
Sie können die Typprüfung Ihrer App auch ohne Tests ausführen:tsc --noEmit aus und meldet etwaige Typfehler.
CI mit GitHub Actions
Das Scaffolding-Tool erzeugt einen einsatzbereiten GitHub-Actions-Workflow in.github/workflows/ci.yml. Er führt Ihre Integrationstests automatisch bei jedem Push auf main und bei Pull Requests aus.
Der Workflow:
- Checkt Ihren Code aus
- Startet einen temporären Twenty-Server mit der Aktion
twentyhq/twenty/.github/actions/spawn-twenty-docker-image - Installiert Abhängigkeiten mit
yarn install --immutable - Führt
yarn testaus, wobeiTWENTY_API_URLundTWENTY_API_KEYaus den Aktionsausgaben injiziert werden.
.github/workflows/ci.yml
spawn-twenty-docker-image startet einen flüchtigen Twenty-Server direkt im Runner und gibt die Verbindungsdetails aus. Das Secret GITHUB_TOKEN wird automatisch von GitHub bereitgestellt.
Um eine bestimmte Twenty-Version statt latest festzulegen, ändern Sie die Umgebungsvariable TWENTY_VERSION oben im Workflow.