82 lines
4.4 KiB
Plaintext
82 lines
4.4 KiB
Plaintext
---
|
|
title: Twenty 应用
|
|
description: 以代码的形式构建并管理 Twenty 自定义项。
|
|
---
|
|
|
|
<Warning>
|
|
应用目前处于 Alpha 阶段。 该功能可用,但仍在演进中。
|
|
</Warning>
|
|
|
|
## 什么是应用?
|
|
|
|
应用可通过自定义对象、字段、逻辑函数、前端组件、AI 技能等来扩展 Twenty——全部以代码进行管理。 无需通过 UI 配置所有内容,你可以用 TypeScript 定义数据模型和逻辑,并将其部署到一个或多个工作空间。
|
|
|
|
**你可以构建的内容:**
|
|
|
|
* **自定义对象和字段** — 使用新实体扩展你的数据模型,或为现有对象(如 Company 或 Person)添加字段
|
|
* **逻辑函数** — 由数据库事件、定时任务(cron)或 HTTP 路由触发的服务端函数
|
|
* **前端组件** — 在 Twenty 的 UI 中渲染的 React 组件(记录页面、命令菜单、侧边面板)
|
|
* **AI 技能和智能体** — 通过自定义能力扩展 Twenty 的 AI
|
|
* **视图和导航** — 预配置的已保存视图和侧边栏链接
|
|
|
|
## 快速开始
|
|
|
|
```bash filename="Terminal"
|
|
npx create-twenty-app@latest my-twenty-app
|
|
cd my-twenty-app
|
|
yarn twenty dev
|
|
```
|
|
|
|
这将搭建一个新的应用,可选地启动本地 Twenty 服务器,并开始监视你的文件变更。 请参阅[开始使用](/l/zh/developers/extend/apps/getting-started)指南,查看完整演练。
|
|
|
|
## 详细指南
|
|
|
|
| 指南 | 描述 |
|
|
| ----------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
|
| [开始使用](/l/zh/developers/extend/apps/getting-started) | 搭建应用、设置本地服务器、项目结构、CI |
|
|
| [构建应用](/l/zh/developers/extend/apps/building) | 实体定义(`defineObject`、`defineLogicFunction`、`defineFrontComponent` 等)、API 客户端、npm 包、公共资源、测试 |
|
|
| [发布](/l/zh/developers/extend/apps/publishing) | 部署到服务器、发布到 npm、应用市场 |
|
|
|
|
## 关键概念
|
|
|
|
### 实体检测
|
|
|
|
SDK 通过扫描你的 TypeScript 文件中的 `export default define<Entity>({...})` 调用来检测实体。 文件命名和文件夹结构是灵活的 — 检测基于 AST,而非基于路径。
|
|
|
|
### 可用的实体类型
|
|
|
|
| 函数 | 目的 |
|
|
| ---------------------------------- | ----------------------- |
|
|
| `defineApplication()` | 应用元数据(必需,每个应用一个) |
|
|
| `defineObject()` | 带字段的自定义对象 |
|
|
| `defineField()` | 现有对象上的字段 |
|
|
| `defineLogicFunction()` | 带触发器的服务端逻辑 |
|
|
| `defineFrontComponent()` | Twenty 的 UI 中的 React 组件 |
|
|
| `defineRole()` | 权限角色 |
|
|
| `defineView()` | 已保存视图配置 |
|
|
| `defineNavigationMenuItem()` | 侧边栏导航链接 |
|
|
| `defineSkill()` | AI 智能体技能 |
|
|
| `defineAgent()` | 带提示词的 AI 智能体 |
|
|
| `definePageLayout()` | 自定义记录页面布局 |
|
|
| `definePreInstallLogicFunction()` | 在应用安装之前运行 |
|
|
| `definePostInstallLogicFunction()` | 在应用安装之后运行 |
|
|
|
|
### 开发工作流程
|
|
|
|
1. **`yarn twenty dev`** — 监视源文件、更改时重新构建、同步到服务器、生成类型化的 API 客户端
|
|
2. **`yarn twenty build`** — 生成可分发的构建产物
|
|
3. **`yarn twenty deploy`** — 部署到远程 Twenty 服务器
|
|
4. **`yarn twenty add`** — 交互式生成一个新实体
|
|
|
|
### CLI 参考
|
|
|
|
```bash filename="Terminal"
|
|
yarn twenty help # 列出所有命令
|
|
yarn twenty server start # 启动本地开发服务器
|
|
yarn twenty remote add # 连接到 Twenty 服务器
|
|
yarn twenty exec -n fn # 执行逻辑函数
|
|
yarn twenty logs -n fn # 实时查看函数日志
|
|
```
|
|
|
|
请参阅[开始使用](/l/zh/developers/extend/apps/getting-started)指南以获取完整的 CLI 参考。
|