跳转到内容

目录

Tuist 在系统上跨多个目录组织其文件,遵循 XDG Base Directory Specification。这提供了一种干净、标准的方式来管理配置、缓存和状态文件。

Tuist 支持标准 XDG 变量和 Tuist 特定前缀变体。Tuist 特定变体(以 TUIST_ 为前缀)优先,允许你单独为 Tuist 配置,而不是其他应用程序。

环境变量:

  • TUIST_XDG_CONFIG_HOME(优先)
  • XDG_CONFIG_HOME

默认: ~/.config/tuist

用于:

  • 服务器凭证(credentials/{host}.json

示例:

Terminal window
# 设置 Tuist 特定配置目录
export TUIST_XDG_CONFIG_HOME=/custom/config
tuist auth login
# 或使用标准 XDG 变量
export XDG_CONFIG_HOME=/custom/config
tuist auth login

环境变量:

  • TUIST_XDG_CACHE_HOME(优先)
  • XDG_CACHE_HOME

默认: ~/.cache/tuist

用于:

  • 插件:下载并编译的插件缓存
  • ProjectDescriptionHelpers:编译的项目描述助手
  • Manifests:缓存的清单文件
  • Projects:生成的自动化项目缓存
  • EditProjects:编辑命令的缓存
  • Runs:测试和构建运行分析数据
  • Binaries:构建产物二进制文件(不可跨环境共享)
  • SelectiveTests:选择性测试缓存

示例:

Terminal window
# 设置 Tuist 特定缓存目录
export TUIST_XDG_CACHE_HOME=/tmp/tuist-cache
tuist cache
# 或使用标准 XDG 变量
export XDG_CACHE_HOME=/tmp/cache
tuist cache

环境变量:

  • TUIST_XDG_STATE_HOME(优先)
  • XDG_STATE_HOME

默认: ~/.local/state/tuist

用于:

  • 日志:日志文件(logs/{uuid}.log
  • :认证锁文件({handle}.sock

示例:

Terminal window
# 设置 Tuist 特定状态目录
export TUIST_XDG_STATE_HOME=/var/log/tuist
tuist generate
# 或使用标准 XDG 变量
export XDG_STATE_HOME=/var/log
tuist generate

在确定使用哪个目录时,Tuist 按以下顺序检查环境变量:

  1. Tuist 特定变量(如 TUIST_XDG_CONFIG_HOME
  2. 标准 XDG 变量(如 XDG_CONFIG_HOME
  3. 默认位置(如 ~/.config/tuist

这允许你:

  • 使用标准 XDG 变量保持所有应用程序的一致性
  • 当你需要为 Tuist 使用不同位置时,用 Tuist 特定变量覆盖
  • 依赖合理的默认值而无需任何配置

你可能希望为每个项目隔离 Tuist 的缓存和状态:

Terminal window
# 在你项目的 .envrc 中(使用 direnv)
export TUIST_XDG_CACHE_HOME="$PWD/.tuist/cache"
export TUIST_XDG_STATE_HOME="$PWD/.tuist/state"
export TUIST_XDG_CONFIG_HOME="$PWD/.tuist/config"

在 CI 环境中,你可能想使用临时目录:

# GitHub Actions 示例
env:
TUIST_XDG_CACHE_HOME: /tmp/tuist-cache
TUIST_XDG_STATE_HOME: /tmp/tuist-state
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- run: tuist generate
- name: Upload logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: tuist-logs
path: /tmp/tuist-state/logs/*.log

调试问题时,你可能需要干净的起点:

Terminal window
# 创建临时目录用于调试
export TUIST_XDG_CACHE_HOME=$(mktemp -d)
export TUIST_XDG_STATE_HOME=$(mktemp -d)
export TUIST_XDG_CONFIG_HOME=$(mktemp -d)
# 运行 Tuist 命令
tuist generate
# 完成后清理
rm -rf $TUIST_XDG_CACHE_HOME $TUIST_XDG_STATE_HOME $TUIST_XDG_CONFIG_HOME