Skip to main content

先决条件

  • Node.js 24.5+在此下载
  • Yarn 4 — 通过 Corepack 随 Node.js 提供。 启用它:corepack enable
  • Docker在此下载。 运行本地 Twenty 服务器所需。 如果你已经在其他地方运行了 Twenty,请跳过。
构建一个 Twenty 应用包含三个阶段。 脚手架工具将它们合并为一个理想路径的命令,但每个阶段都是独立的概念——当出现问题时,知道自己处于哪个阶段可以指明需要修复什么。

阶段 1 — 搭建项目脚手架

从模板创建一个新应用:
脚手架是非交互式的:目录名称会成为应用名称。 传递 --display-name--description 来自定义生成的元数据(你也可以稍后在 src/constants/universal-identifiers.ts 中进行编辑)。 这将在 my-twenty-app/ 中生成一个 TypeScript 项目,包含一个入门版的 application-config.ts、一个默认角色、CI/CD 工作流,以及一个集成测试。 完成此阶段后: 你的机器上已有该应用的源代码。 它还未运行——那是第 2 阶段的内容。

阶段 2 — 运行本地 Twenty 服务器

你的应用需要一个 Twenty 服务器来进行同步。 该服务器是一个完整的 Twenty 实例——包含 UI、GraphQL API、PostgreSQL——在本地的 Docker 中运行。 你的本地代码会将其定义上传到该服务器,从而使其显示在 UI 中。 脚手架会为你启动一个:在 Docker 正在运行的情况下,它会拉取 twentycrm/twenty-app-dev 镜像,在端口 2020 上启动,并将 CLI 认证到预置的演示工作区(tim@apple.dev)——无需登录。 若要改为连接到现有的 Twenty 服务器,请传入 --url \<your-server-url>。 远程服务器通过 OAuth 进行身份验证:会打开一个浏览器窗口,你可以登录并点击 Authorize,从而授予 CLI 访问你工作区的权限。 (你也可以在本地选择使用 OAuth,方式是添加 --authentication-method oauth —— 使用 tim@apple.dev / tim@apple.dev 登录。)
Twenty 登录界面
Twenty CLI 授权界面
你的终端会确认一切已就绪。
应用脚手架创建成功
完成此阶段后: 你在 http://localhost:2020 上拥有一个正在运行的 Twenty 服务器,且你的 CLI 已获授权可与其同步。
如果未安装或未运行 Docker,脚手架工具会告诉你在所用操作系统上正确的启动命令。 Docker 启动后,你可以通过 yarn twenty docker:start 继续——无需重新生成脚手架。

阶段 3 — 同步你的更改

这是你大部分时间所处的内循环。
它会监视 src/,在每次更改时重新构建,并将结果同步到服务器。 编辑文件、保存,服务器会在几秒内反映出更改。 你会在终端中看到一个实时状态面板。 如需更详细的输出(构建日志、同步请求、错误跟踪),请添加 --verbose
开发模式终端输出
打开 http://localhost:2020/settings/applications#developer。 你应当在 你的应用 下看到你的应用。
“你的应用”列表显示 My twenty app
点击 My twenty app 查看其应用注册——一条用于描述你的应用(名称、标识符、OAuth 凭据、来源)的服务器级记录。 同一服务器上的多个工作区可以安装同一个注册项。
应用注册详情
点击 查看已安装的应用 以查看工作区安装项。 关于 选项卡显示版本和管理选项。
已安装的应用
完成此阶段后: 你拥有一个实时的开发循环。 编辑 src/ 中的任意文件,更改会显示在 UI 中。

用于 CI 和脚本的一次性同步

使用 planapply 在无监视器的情况下各运行一次相同的流水线:
所有模式都需要经过身份验证的远程服务器。 有关 plan 的更多信息,请参见 同步与恢复
yarn twenty dev --onceyarn twenty dev --once --dry-runyarn twenty applyyarn twenty plan 的已弃用别名。

开发模式选项

你可以构建的内容

应用由实体组成——每个实体定义为一个包含单一 export default 的 TypeScript 文件: 完整参考:概念

后续步骤

配置

应用标识、默认角色、安装和卸载钩子、公共资源。

数据

对象、字段和双向关系。

逻辑

逻辑函数、技能、智能体和 OAuth 连接。

布局

视图、导航、页面布局、前端组件。

操作

CLI、测试、远程、CI,以及发布你的应用。