Saltar al contenido principal

Resumen

Una nueva app generada por twenty app init se ve así:

Archivos clave

La organización de archivos depende de ti. Las carpetas anteriores son convenciones — el CLI detecta entidades mediante análisis AST en llamadas a export default defineEntity(...) sin importar dónde se encuentre el archivo.

Dependencias

twenty app init coloca twenty-sdk, twenty-client-sdk y twenty-ui en devDependencies, fijados a la versión del SDK seleccionada por esa versión de la CLI. Conserva las versiones generadas para una aplicación nueva y mantén los tres paquetes sincronizados al actualizar. La CLI puede recibir versiones de parche de forma independiente, por lo que su versión no tiene por qué coincidir con la de estos paquetes. El engines.twenty generado establece la versión mínima del servidor en la versión principal y secundaria de ese SDK. Los Workflows generados de GitHub Actions fijan la CLI por separado.
  • twenty-sdk proporciona definiciones de apps, asistentes de tiempo de ejecución e integración del renderizador. Usa el paquete twenty instalado por separado para los comandos de CLI y las herramientas de compilación/generación de estructura.
  • twenty-client-sdk sí es importado por el código de tu app (CoreApiClient, MetadataApiClient, RestApiClient), pero Twenty lo proporciona en tiempo de ejecución: las funciones lógicas lo obtienen de una capa SDK generada y los componentes de front lo resuelven desde módulos servidos por el servidor. Tu copia instalada solo se utiliza para la comprobación de tipos y el build en tiempo de despliegue, por lo que nunca necesita incluirse en el bundle desplegado.
Mantener cualquiera de los paquetes bajo dependencies lo introduce en el bundle de runtime de la app instalada, donde es peso muerto. twenty app build emite una advertencia cuando cualquiera de los dos sigue listado en dependencies. Añade las dependencias de runtime propias de tu app (las bibliotecas que tus funciones lógicas realmente importan en tiempo de ejecución) bajo dependencies como de costumbre. Mantén el árbol ligero: las dependencies se instalan en una capa de tiempo de ejecución con un límite de 250 MB sin comprimir, y una sincronización o instalación falla con un error de tamaño de dependencias si se supera ese límite — las bibliotecas de UI y las herramientas de desarrollo pertenecen a devDependencies.