Utilisation de packages npm
Vous pouvez installer et utiliser n’importe quel package npm dans votre application. Les fonctions logiques et les composants frontaux sont tous deux empaquetés avec esbuild, qui intègre toutes les dépendances dans la sortie — aucunnode_modules n’est nécessaire à l’exécution.
Installation d’un package
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Comment fonctionne le bundling
L’étape de build utilise esbuild pour produire un seul fichier autonome par fonction logique et par composant frontal. Tous les packages importés sont intégrés dans le bundle. Les fonctions logiques s’exécutent dans un environnement Node.js. Les modules intégrés de Node (fs, path, crypto, http, etc.) sont disponibles et n’ont pas besoin d’être installés.
Les composants frontaux s’exécutent dans un Web Worker. Les modules intégrés de Node ne sont pas disponibles — seules les API du navigateur et les packages npm qui fonctionnent dans un environnement navigateur sont pris en charge.
Les deux environnements disposent de twenty-client-sdk/core et twenty-client-sdk/metadata en tant que modules pré-fournis — ils ne sont pas intégrés au bundle mais résolus à l’exécution par le serveur.
Installation
L’application générée inclut déjà Vitest. Si vous le configurez manuellement, installez les dépendances :vitest.config.ts à la racine de votre application :
vitest.config.ts
src/__tests__/setup-test.ts
APIs programmatiques du SDK
Le sous-chemintwenty-sdk/cli exporte des fonctions que vous pouvez appeler directement depuis le code de test :
| Fonction | Description |
|---|---|
appBuild | Construire l’application et éventuellement créer une archive tarball |
appDeploy | Téléverser une archive tarball vers le serveur |
appInstall | Installer l’application sur l’espace de travail actif |
appUninstall | Désinstaller l’application de l’espace de travail actif |
success: boolean et soit data soit error.
Écrire un test d’intégration
Voici un exemple complet qui construit, déploie et installe l’application, puis vérifie qu’elle apparaît dans l’espace de travail :src/__tests__/app-install.integration-test.ts
Exécuter les tests
Assurez-vous que votre serveur Twenty local est en cours d’exécution, puis :Vérification des types
Vous pouvez également exécuter une vérification des types sur votre application sans exécuter les tests :tsc --noEmit et signale toute erreur de type.
CI avec GitHub Actions
Le générateur crée un workflow GitHub Actions prêt à l’emploi dans.github/workflows/ci.yml. Il exécute automatiquement vos tests d’intégration à chaque push sur main et sur les pull requests.
Le workflow :
- Récupère votre code
- Lance un serveur Twenty temporaire en utilisant l’action
twentyhq/twenty/.github/actions/spawn-twenty-docker-image - Installe les dépendances avec
yarn install --immutable - Exécute
yarn testavecTWENTY_API_URLetTWENTY_API_KEYinjectés à partir des sorties de l’action
.github/workflows/ci.yml
spawn-twenty-docker-image démarre un serveur Twenty éphémère directement dans le runner et fournit les détails de connexion. Le secret GITHUB_TOKEN est fourni automatiquement par GitHub.
Pour épingler une version spécifique de Twenty au lieu de latest, modifiez la variable d’environnement TWENTY_VERSION en haut du workflow.