配置参考

tina/config.{ts,tsx,js,jsx} 导出的 defineConfig 函数的结果定义了你的 TinaCMS 设置。

重要 - 配置必须是确定性的

defineConfig 返回的对象在开发和构建过程中必须多次评估。避免在影响模式或运行时配置的配置属性中直接使用非确定性值(例如 Date.now(), Math.random())。这可能导致 GraphQL 模式不匹配错误。

如果需要动态值,请返回一个函数并延迟计算该值。

请注意,它必须是默认导出。

配置文件的位置以前在 .tina/config.{ts,tsx,js,jsx}

选项

REQUIRED
schema
Schema

定义你的内容模型

branch
string | null

要从中提取内容的基本分支。对于 TinaCloud 是必需的。


client​Id
string | null

来自 TinaCloud 的 clientId。对于 TinaCloud 是必需的。


token
string | null

来自 TinaCloud 的只读令牌。对于 TinaCloud 是必需的。


local​Content​Path
string

用于本地开发的单独内容仓库的路径,相对于 tina/ 配置文件夹解析(而不是项目根目录)。

设置后,集合 path 值相对于此内容根目录解析。内容目录必须包含一个 tina/ 文件夹(可以为空)— TinaCMS 在那里写入生成的文件,如 tina-lock.json

使用环境变量,因为路径可能因开发人员而异:

有关完整的设置详细信息,请参阅 单独内容仓库指南


auth​Provider
AuthProvider
EXPERIMENTAL
content​Api​Url​Override
string

覆盖默认内容 API URL。


telemetry
'anonymous' | 'disabled'

控制 TinaCMS 是否收集匿名使用统计数据以帮助改进产品。

设置为 'disabled' 以完全选择退出。

Default is 'anonymous'.

All properties marked as REQUIRED must be specified for the field to work properly.

示例

Vercel 和 TinaCloud 配置

这是一个使用 TinaCloud 托管数据层和内置 TinaCMS 媒体和搜索功能的标准配置。

Cloudinary 媒体存储

TinaCMS 支持 Git 支持的媒体和特定的外部媒体提供商:

TinaCloud 搜索选项

TinaCMS 通过 TinaCloud 提供内置搜索功能。

环境变量

TinaCMS 在两个上下文中使用环境变量:站点构建(你的 Next.js/SSG 应用)和 管理构建(TinaCMS 编辑器在 /admin)。这些有不同的作用域规则。

构建时嵌入

TinaCMS 管理是一个静态构建的 SPA。环境变量在构建时(在 tinacms buildtinacms dev 期间)嵌入到管理的 JavaScript 中。它们不会在运行时读取。这意味着变量必须在构建运行时存在于环境中——之后设置它没有效果。

.env 文件支持

TinaCMS 的构建过程仅从 .env 文件中获取变量。在 .env.local.env.development 或其他 dotenv 变体中定义的变量不会被 TinaCMS 构建加载。如果你正在部署到托管提供商(Vercel、Netlify 等),请确保变量也在该提供商的环境设置中配置。

管理暴露的变量

为了安全起见,只有一部分环境变量包含在管理构建中。这可以防止敏感凭据泄露到公开服务的管理 index.js 中。

允许的变量是:

模式

描述

TINA_PUBLIC_*

TinaCMS 特定的公共变量

NEXT_PUBLIC_*

Next.js 公共变量

NODE_ENV

当前环境(developmentproduction 等)

HEAD

当前分支(由 Netlify 使用)

在管理中通过 process.env 访问的任何其他环境变量——包括 自定义字段组件beforeSubmit 钩子或其他管理端代码——将是 undefined

要使环境变量在管理中工作,它必须:(1)使用 TINA_PUBLIC_NEXT_PUBLIC_ 前缀,并且(2)在 tinacms buildtinacms dev 运行时设置在环境中。例如,将 MY_API_KEY 重命名为 TINA_PUBLIC_MY_API_KEY 并确保它在你的 .env 文件或 CI/托管环境变量中。

常见环境变量

变量

上下文

描述

NEXT_PUBLIC_TINA_CLIENT_ID

站点 + 管理

你的 TinaCloud 项目客户端 ID

TINA_TOKEN

仅站点构建

TinaCloud 的只读令牌(不在管理中暴露)

TINA_PUBLIC_IS_LOCAL

站点 + 管理

在自托管设置中在本地和生产后端之间切换

NEXT_PUBLIC_TINA_BRANCH

站点 + 管理

覆盖用于内容获取的分支

TINA_SEARCH_TOKEN

仅站点构建

TinaCloud 搜索索引的令牌

有关使用环境变量进行部署的更多信息,请参阅 使用 TinaCloud 进入生产。有关管理变量作用域的安全背景,请参阅 2023 年 2 月安全公告

使用 Typescript 路径别名的导入

TinaCMS 支持在 tina/config.{ts,js,tsx} 文件和集合中使用 TypeScript 路径别名。

确保 tsconfig.json 存在于项目的根目录。 在 compilerOptions 部分定义你的别名。

现在可以使用别名导入实用程序或其他模块。

Last Edited: December 9, 2025