Uso de paquetes de npm
Puedes instalar y usar cualquier paquete de npm en tu aplicación. Tanto las funciones de lógica como los componentes de frontend se empaquetan con esbuild, que incorpora todas las dependencias en la salida — no se necesitannode_modules en tiempo de ejecución.
Instalar un paquete
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Cómo funciona el empaquetado
El paso de compilación usa esbuild para producir un solo archivo autónomo por función de lógica y por componente de frontend. Todos los paquetes importados se insertan en el bundle. Las funciones de lógica se ejecutan en un entorno Node.js. Los módulos integrados de Node (fs, path, crypto, http, etc.) están disponibles y no necesitan instalarse.
Los componentes de frontend se ejecutan en un Web Worker. Los módulos integrados de Node no están disponibles — solo las APIs del navegador y paquetes de npm que funcionen en un entorno de navegador.
Ambos entornos tienen twenty-client-sdk/core y twenty-client-sdk/metadata disponibles como módulos preproporcionados — estos no se incluyen en el bundle sino que se resuelven en tiempo de ejecución por el servidor.
Configuración
La aplicación generada ya incluye Vitest. Si lo configuras manualmente, instala las dependencias:vitest.config.ts en la raíz de tu aplicación:
vitest.config.ts
src/__tests__/setup-test.ts
APIs programáticas del SDK
La subrutatwenty-sdk/cli exporta funciones que puedes invocar directamente desde el código de pruebas:
| Función | Descripción |
|---|---|
appBuild | Compilar la aplicación y opcionalmente empaquetar un tarball |
appDeploy | Subir un tarball al servidor |
appInstall | Instalar la aplicación en el espacio de trabajo activo |
appUninstall | Desinstalar la aplicación del espacio de trabajo activo |
success: boolean y data o error.
Escribir una prueba de integración
Aquí tienes un ejemplo completo que compila, despliega e instala la aplicación, y luego verifica que aparezca en el espacio de trabajo:src/__tests__/app-install.integration-test.ts
Ejecutar pruebas
Asegúrate de que tu servidor local de Twenty esté en ejecución y luego:Comprobación de tipos
También puedes ejecutar la comprobación de tipos en tu aplicación sin ejecutar pruebas:tsc --noEmit e informa cualquier error de tipo.
CI con GitHub Actions
El generador crea un flujo de trabajo de GitHub Actions listo para usar en.github/workflows/ci.yml. Ejecuta tus pruebas de integración automáticamente en cada push a main y en los pull requests.
El flujo de trabajo:
- Obtiene tu código
- Inicia un servidor temporal de Twenty usando la acción
twentyhq/twenty/.github/actions/spawn-twenty-docker-image - Instala las dependencias con
yarn install --immutable - Ejecuta
yarn testconTWENTY_API_URLyTWENTY_API_KEYinyectados a partir de las salidas de la acción
.github/workflows/ci.yml
spawn-twenty-docker-image inicia un servidor efímero de Twenty directamente en el runner y devuelve los detalles de conexión. El secreto GITHUB_TOKEN lo proporciona GitHub automáticamente.
Para fijar una versión específica de Twenty en lugar de latest, cambia la variable de entorno TWENTY_VERSION al inicio del flujo de trabajo.