TinaCMS CLI

可用命令

常用选项

以下是一些可以在 tinacms devtinacms build 中使用的常用选项

参数

描述

-c

-c 允许您选择性地将命令作为子进程运行。例如,您可以在 graphQL 服务器旁边运行您的 Next.js 项目 yarn tinacms dev -c next dev

--port <port>

指定运行服务器的端口。(默认 4001)

--datalayer-port <port>

指定运行本地级别服务器的端口。(默认 9000)

--noWatch

不在文件更改时重新生成配置。此选项适合在 CI 中构建时添加,或者如果您不想监视文件系统的更改。

--noSDK

不生成生成的客户端 SDK。阅读此处 了解有关 SDK 的更多详细信息。

-v,--verbose

增加日志输出的详细程度(默认:false)

--rootPath

指定运行 CLI 的根目录(默认为当前工作目录)

--noTelemetry

不报告匿名遥测数据

基本用法:

"tinacms dev"

要运行此命令,您必须有一个有效的 tina/config.{ts,tsx,js,jsx} 文件。

dev 将把架构编译成静态文件,为您的项目生成 TypeScript 类型,并在 http://localhost:4001 上启动一个 graphQL 服务器。

此命令接受在常用选项中列出的参数

NextJS 示例:

其他 SSG 框架示例

"tinacms build"

此命令编译并验证架构,生成客户端和类型。它还将确保您的内容已完成索引。

选项

此命令接受所有常用选项以及其他一些选项:

参数

描述

--tina-graphql-version

指定后端将使用的 @tinacms/graphql 版本。(仅在高级情况下需要)

--local

将启动本地 Graphql 服务器并生成本地客户端。这对于静态构建很有用,但不适用于 SSR

--content=local

在构建期间从本地文件系统获取内容,因此不会进行 TinaCloud 内容 API 调用,而生成的客户端在运行时仍指向 TinaCloud。推荐用于有许多页面的 SSG 网站。

--skip-cloud-checks

跳过 TinaCloud 检查(危险且不推荐)

--skip-search-indexing

跳过搜索索引

--no-client-build-cache

禁用本地客户端的查询自动缓存

示例:

使用 TinaCloud 进行数据获取的生产构建

使用 SSG 的生产构建

使用本地客户端和本地 graphql 服务器

这将会

  • 启动本地 graphql 服务器
  • 生成将查询本地文件系统的本地 TinaCMS 客户端
  • 生成本地图像路径
  • 构建生产 SPA
  • 运行 Next 构建

使用本地内容构建 TinaCloud 生产客户端

这将会

  • 在构建期间将您的内容索引到临时内存数据层中
  • 生成生产 TinaCMS 客户端(因此部署的网站在运行时仍与 TinaCloud 通信)
  • 在构建期间进行 TinaCloud 内容 API 请求
  • 运行您的框架的构建命令

当 SSG 生成数千个页面时很有用。在 SSW Rules(约 4,000 页)上,构建时间从 4:55 降至 2:12,TinaCloud 内容 API 调用从约 4,000 次降至 0 次。

由于生成的客户端是生产客户端,branchclientIdtoken 必须在您的 TinaCMS 配置中配置,与正常 tinacms build 使用的值相同。

需要了解的一些事项:

  • 在构建期间跳过搜索索引(会发出警告)。如果依赖搜索,请单独重新索引。
  • TinaCloud 验证检查(分支状态、架构匹配)仍会运行;传递 --skip-cloud-checks 以跳过它们。
  • 如果同时传递了 --local--content=local,则 --local 优先。

"npx @tinacms/cli@latest init"

init 命令必须在现有项目中运行(例如 NextJS 项目、Hugo、Jekyll 等)。

这将会:

  • 安装 TinaCMS 所需的所有依赖项。
  • tina 目录中定义基本内容架构。
  • 在演示目录中创建示例内容。
  • 编辑 package.json 以使 devbuildstart 脚本运行 tina GraphQL API。

选项

参数

描述

--noTelemetry

禁用开源遥测数据

"tinacms audit"

audit 命令用于检查文件中的错误。它目前执行两项操作。

  • 检查文件是否具有正确的扩展名
  • 将每个文件作为 Graphql 变更提交并检查 Graphql 错误

默认情况下,变更不会更改文件的内容。

选项

参数

描述

--clean

使用此标志时,它会将实际的 Graphql 变更提交到文件系统。这意味着它将清除架构中未定义的任何字段。最好在执行此操作之前进行 git commit,以便可以轻松撤销意外更改。

-v,--verbose

增加日志输出的详细程度(默认:false)

"tinacms search-index"

此命令使用您存储库中的内容构建搜索索引并将其上传到 TinaCloud。

"tinacms doctor"

doctor 命令检查您项目中安装的 TinaCMS 包是否与 npm latest dist-tag 一致。它回答了“我是否是最新的?”这个问题——CLI 对应于 /versions 页面。

该命令:

  • 读取您的 package.json 并从 node_modules 或您的项目锁定文件中解析已安装的版本(支持 package-lock.jsonpnpm-lock.yamlyarn.lock)。
  • 过滤到 TinaCMS 包系列:tinacms@tinacms/*tinacms-*next-tinacms-*create-tina-app
  • 并行从 registry.npmjs.org 获取每个已安装包的 dist-tags.latest
  • 打印一个包含声明的已安装的最新的版本的表格,并带有状态列(CURRENTOUTDATEDLOCALUNKNOWN)。
  • 如果任何包过时或无法解析,则以代码 1 退出,因此它对 CI 友好。

选项

参数

描述

--rootPath <path>

指定要检查的根目录(默认为当前工作目录)

--json

打印机器可读的 JSON 输出而不是格式化的表格

--timeout <ms>

npm 注册表请求超时时间(毫秒)(默认:5000)