Skip to main content

什么是应用?

应用可通过自定义对象、字段、逻辑函数、前端组件、AI 技能等来扩展 Twenty——全部以代码进行管理。 无需通过 UI 配置所有内容,你可以用 TypeScript 定义数据模型和逻辑,并将其部署到一个或多个工作空间。

先决条件

在开始之前,请确保你的机器已安装以下内容:
  • Node.js 24+在此下载
  • Yarn 4 — 通过 Corepack 随 Node.js 提供。 通过运行 corepack enable 启用它
  • Docker在此下载。 运行本地 Twenty 实例所必需。 如果你已经有一个正在运行的 Twenty 服务器,则不需要。

创建你的第一个应用

为你的应用创建脚手架

打开终端并运行:
系统会提示你为应用输入名称和描述。 按下 Enter 接受默认值。 这会创建一个名为 my-twenty-app 的新文件夹,其中包含你所需的一切。

设置本地 Twenty 实例

脚手架工具会询问:
是否要设置本地 Twenty 实例?
  • 输入 yes(推荐)— 这将拉取 twenty-app-dev Docker 镜像,并在端口 2020 上启动本地 Twenty 服务器。 继续之前,请确保 Docker 正在运行。
  • 输入 no — 如果你已经有一个在本地运行的 Twenty 服务器,请选择此项。
是否启动本地实例?

登录你的工作区

接下来,将打开一个浏览器窗口,显示 Twenty 登录页面。 使用预置的演示账户登录:
  • 邮箱: tim@apple.dev
  • 密码: tim@apple.dev
Twenty 登录界面

授权该应用

登录后,你会看到一个授权界面。 这使你的应用可以与工作区交互。 点击 授权 继续。
Twenty CLI 授权界面
授权后,你的终端会确认一切已就绪。
应用脚手架创建成功

开始开发

进入你的新应用文件夹并启动开发服务器:
它会监听你的源文件,每次更改都会重建,并自动将你的应用同步到本地 Twenty 服务器。 你应当在终端中看到一个实时状态面板。 如需更详细的输出(构建日志、同步请求、错误跟踪),请使用 --verbose 标志:
开发模式仅适用于以开发模式运行的 Twenty 实例(NODE_ENV=development)。 生产实例会拒绝开发同步请求。 使用 yarn twenty deploy 部署到生产服务器——详见发布应用
开发模式终端输出

使用 yarn twenty dev --once 进行一次性同步

如果不希望有监视器在后台运行(例如在 CI 流水线、git 钩子或脚本化工作流中),请传入 --once 标志。 它运行与 yarn twenty dev 相同的流水线 — 构建清单、打包文件、上传、同步、重新生成类型化 API 客户端 — 但会在同步完成后立即退出
两种模式都需要一个以开发模式运行的 Twenty 服务器和一个已认证的远程端 — 相同的先决条件同样适用。

在 Twenty 中查看你的应用

在浏览器中打开 http://localhost:2020/settings/applications#developer。 前往 设置 > 应用,并选择 开发者 选项卡。 你应当在 你的应用 下看到你的应用:
“你的应用”列表显示 My twenty app
点击 My twenty app 打开其 应用注册。 注册项是一个服务器级记录,用于描述你的应用——其名称、唯一标识符、OAuth 凭据以及来源(本地、npm 或 tarball)。 它位于服务器上,而不在任何特定工作区内。 当你将应用安装到工作区时,Twenty 会创建一个工作区范围的 应用,指向该注册项。 同一服务器上的多个工作区可以安装同一个注册项。
应用注册详情
点击 查看已安装的应用 以查看已安装的应用。 关于 选项卡显示当前版本和管理选项:
已安装的应用 — “关于”选项卡
切换到 内容 选项卡,以查看你的应用提供的全部内容——对象、字段、逻辑函数和智能体:
已安装的应用 — “内容”选项卡
一切就绪! 编辑 src/ 中的任意文件,更改会被自动检测到。

你可以构建的内容

应用由实体组成——每个实体定义为一个包含单一 export default 的 TypeScript 文件: 前往构建应用,查看每种实体类型的详细指南。

项目结构

脚手架工具会生成以下文件结构:

从示例开始

若要从一个更完整的示例开始(包含自定义对象、字段、逻辑函数、前端组件等),请使用 --example 标志:
示例来自 GitHub 上的 twenty-apps/examples 目录。 你也可以使用 yarn twenty add 为现有项目生成单个实体的脚手架(参见构建应用)。

关键文件

本地开发服务器

脚手架工具已经为你启动了一个本地 Twenty 服务器。 稍后要进行管理,请使用 yarn twenty server 数据在重启后会保留,存储于两个 Docker 卷中(twenty-app-dev-data 用于 PostgreSQL,twenty-app-dev-storage 用于文件)。 使用 reset 清空所有内容并重新开始。

运行测试实例

向任何 server 命令传递 --test 以管理第二个、完全隔离的实例——这对于运行集成测试或在不影响主开发数据的情况下进行试验非常有用。 测试实例在其独立的 Docker 容器 (twenty-app-dev-test) 中运行,配有专用的卷 (twenty-app-dev-test-data, twenty-app-dev-test-storage) 和配置,因此可以与主实例并行运行且不会发生冲突。 将 --test--port 一起使用以覆盖默认的 2021 端口。
服务器需要 Docker 处于运行状态。 如果看到 “Docker not running” 错误,请确保 Docker Desktop(或 Docker 守护进程)已启动。

手动设置(不使用脚手架)

如果你不想使用 create-twenty-app,而是自行完成设置,可以分两步进行。 **1. 将 twenty-sdktwenty-client-sdk 添加为依赖项:
**2. 在你的 package.json 中添加一个 twenty 脚本:
现在你可以运行 yarn twenty devyarn twenty help 以及所有其他命令。
不要全局安装 twenty-sdk。 始终将其作为本地项目依赖使用,以便每个项目都能固定其自己的版本。

故障排除

如果遇到问题:
  • 在使用本地实例启动脚手架工具之前,请确保Docker 已在运行
  • 请确保使用 Node.js 24+(运行 node -v 进行检查)。
  • 请确保已启用 Corepackcorepack enable),以便可使用 Yarn 4。
  • 如果依赖似乎有问题,尝试删除 node_modules 并重新运行 yarn install
仍然遇到问题? 在 Twenty 的 Discord 上寻求帮助。