TinaCMS CLI
可用命令
$ tinacms <command>命令:dev [options] 构建 Tina 并启动开发服务器build [options] 构建 CMS 和自动生成的模块以供 TinaCloud 使用init [options] 向现有项目添加 TinaCloudaudit [options] 审核你的架构和文件以检查错误search-index [options] 构建 TinaCMS 搜索索引并上传到 TinaClouddoctor [options] 检查直接 TinaCMS 依赖项与 npm 最新版本的对比help [command] 显示命令的帮助信息
常用选项
以下是一些可以在 tinacms dev 和 tinacms build 中使用的常用选项
参数 | 描述 |
|---|---|
|
|
| 指定运行服务器的端口。(默认 4001) |
| 指定运行本地级别服务器的端口。(默认 9000) |
| 不在文件更改时重新生成配置。此选项在 CI 中构建或不想监视文件系统更改时很有用。 |
| 不生成生成的客户端 SDK。有关 SDK 的更多详细信息,请阅读此处。 |
| 增加日志输出的详细程度(默认:false) |
| 指定运行 CLI 的根目录(默认为当前工作目录) |
| 不报告匿名遥测数据 |
基本用法:
"tinacms dev"
要运行此命令,您必须有一个有效的tina/config.{ts,tsx,js,jsx}文件。
dev 将架构编译为静态文件,为您的项目生成 TypeScript 类型,并在 http://localhost:4001 上启动一个 graphQL 服务器。
此命令接受在常用选项中列出的参数
NextJS 示例:
tinacms dev -c \"next dev\"
其他 SSG 框架示例
tinacms dev -c \"<Yor Dev Command>\"
"tinacms build"
此命令编译并验证架构,生成客户端和类型。它还将确保你的内容已完成索引。
选项
此命令接受所有常用选项以及其他一些选项:
参数 | 描述 |
|---|---|
| 指定后端将使用的 |
| 将启动本地 Graphql 服务器并生成本地客户端。这对于静态构建很有用,但不适用于 SSR |
| 在构建期间从本地文件系统获取内容,因此不会进行 TinaCloud 内容 API 调用,而生成的客户端在运行时仍指向 TinaCloud。推荐用于有许多页面的 SSG 网站。 |
| 跳过 TinaCloud 检查(危险且不推荐) |
| 跳过搜索索引 |
| 禁用本地客户端的查询自动缓存 |
示例:
使用 TinaCloud 进行数据获取的生产构建
tinacms build && next build
使用 SSG 的生产构建
tinacms build && <Your SSG build command>
使用本地客户端和本地 graphql 服务器
tinacms build --local -c "next build"
这将会
- 启动本地 graphql 服务器
- 生成将查询本地文件系统的本地 TinaCMS 客户端
- 生成本地图像路径
- 构建生产 SPA
- 运行 Next 构建
使用本地内容构建 TinaCloud 生产客户端
tinacms build --content=local -c "next build"
这将会
- 在构建期间将您的内容索引到一个临时的内存数据层中
- 生成生产 TinaCMS 客户端(因此部署的网站在运行时仍与 TinaCloud 通信)
- 在构建期间进行零 TinaCloud 内容 API 请求
- 运行您的框架的构建命令
当 SSG 生成数千个页面时很有用。在 SSW 规则(约 4,000 页)上,构建时间从 4:55 降至 2:12,TinaCloud 内容 API 调用从约 4,000 次降至 0 次。
由于生成的客户端是生产客户端,因此必须在您的 Tina 配置中配置 branch、clientId 和 token,这些值与正常的 tinacms build 使用的值相同。
需要注意的几点:
- 在构建期间跳过搜索索引(会发出警告)。如果依赖于搜索,请单独重新索引。
- TinaCloud 验证检查(分支状态、架构匹配)仍会运行;传递
--skip-cloud-checks以跳过它们。 - 如果同时传递了
--local和--content=local,则--local优先。
"npx @tinacms/cli@latest init"
init 命令必须在现有项目中运行(例如 NextJS 项目、Hugo、Jekyll 等)。
npx @tinacms/cli init
这将会:
- 安装 Tina 所需的所有依赖项。
- 在
tina目录中定义一个基本内容架构。 - 在 demo 目录中创建示例内容。
- 编辑
package.json以使dev、build和start脚本运行 tina GraphQL API。
选项
参数 | 描述 |
|---|---|
| 禁用开源遥测 |
"tinacms audit"
audit 命令用于检查文件中的错误。它目前执行两项操作。
- 检查文件是否具有正确的扩展名
- 将每个文件作为 Graphql 变更提交并检查 Graphql 错误
默认情况下,变更不会更改文件的内容。
选项
参数 | 描述 |
|---|---|
| 使用此标志时,它会将实际的 Graphql 变更提交到文件系统。这意味着它将清除架构中未定义的任何字段。最好在执行此操作之前进行 |
| 增加日志输出的详细程度(默认:false) |
"tinacms search-index"
此命令使用您存储库中的内容构建搜索索引并将其上传到 TinaCloud。
"tinacms doctor"
doctor 命令检查项目中安装的 Tina 包是否与 npm latest dist-tag 相符。它回答了“我是否是最新的?”这个问题——这是 CLI 对应于/versions页面的功能。
该命令:
- 读取你的
package.json并从node_modules或项目锁定文件中解析已安装的版本(支持package-lock.json、pnpm-lock.yaml和yarn.lock)。 - 过滤到 Tina 包系列:
tinacms、@tinacms/*、tinacms-*、next-tinacms-*和create-tina-app。 - 并行从
registry.npmjs.org获取每个已安装包的dist-tags.latest。 - 打印一个包含声明的、已安装的和最新的版本的表格,并带有状态列(
CURRENT、OUTDATED、LOCAL或UNKNOWN)。 - 如果任何包过时或无法解析,则以代码
1退出,因此它对 CI 友好。
pnpm tinacms doctor
选项
参数 | 描述 |
|---|---|
| 指定要检查的根目录(默认为当前工作目录) |
| 打印机器可读的 JSON 输出而不是格式化的表格 |
| npm 注册表请求超时时间(毫秒)(默认:5000) |