npx create-twenty-app, выглядит так:
Ключевые файлы
| Файл / Папка | Назначение |
|---|---|
src/application-config.ts | Обязательно. Основной файл конфигурации для вашего приложения. |
src/default-role.ts | Роль по умолчанию, контролирующая, к чему имеют доступ ваши логические функции. |
src/constants/universal-identifiers.ts | Автоматически генерируемые UUID и метаданные (отображаемое имя, описание). |
src/__tests__/ | Интеграционные тесты (настройка + пример теста). |
public/ | Статические ресурсы (изображения, шрифты), обслуживаемые вместе с вашим приложением. |
Организация файлов — на ваше усмотрение. Приведенные выше папки являются соглашениями — SDK обнаруживает сущности с помощью AST-анализа вызовов
export default defineEntity(...) независимо от того, где расположен файл.Зависимости
Оба пакета Twenty SDK должны находиться вdevDependencies, а не в dependencies:
twenty-sdkпоставляетtwentyCLI и инструменты сборки/скэффолдинга. Он выполняется только на этапах разработки и сборки и никогда не импортируется во время выполнения опубликованного приложения.twenty-client-sdkдействительно импортируется кодом вашего приложения (CoreApiClient,MetadataApiClient,RestApiClient), но Twenty предоставляет его во время выполнения — функции логики получают его из сгенерированного слоя SDK, а фронтенд‑компоненты получают его из модулей, отдаваемых сервером. Установленная вами копия используется только для проверки типов и сборки на этапе деплоя, поэтому её не нужно включать в развертываемый бандл.
dependencies, он попадает в бандл среды выполнения установленного приложения, где он является лишним грузом. twenty build выдаёт предупреждение, если любой из них всё ещё указан в dependencies.
Добавляйте собственные зависимости среды выполнения вашего приложения (библиотеки, которые ваши функции логики действительно импортируют во время выполнения) в dependencies, как обычно.