目錄{#directories}
Tuist 遵循 XDG 基本目錄規格,在系統上的多個目錄中組織檔案。這提供了一種簡潔、標準的方式來管理組態、快取和狀態檔案。
支援的環境變數{#supported-environment-variables}#
Tuist 支援標準 XDG 變數和 Tuist 特有的前綴變數。Tuist 特有的變數 (前綴為TUIST_)具有優先權,讓您可以將 Tuist
與其他應用程式分開設定。
設定目錄{#configuration-directory}#
環境變數:
TUIST_XDG_CONFIG_HOME(優先)xdg_config_home
預設: ~/.config/tuist
用於:
- 伺服器憑證 (
credentials/{host}.json)
範例:
bash
# Set Tuist-specific config directory
export TUIST_XDG_CONFIG_HOME=/custom/config
tuist auth login
# Or use standard XDG variable
export XDG_CONFIG_HOME=/custom/config
tuist auth login
快取記憶體目錄{#cache-directory}#
環境變數:
TUIST_XDG_CACHE_HOME(優先)XDG_CACHE_HOME
預設: ~/.cache/tuist
用於:
- 外掛程式 :下載並編譯的外掛程式快取
- ProjectDescriptionHelpers :已編譯的專案描述輔助工具
- Manifests :快取清單檔案
- 專案 :產生自動化專案快取
- EditProjects :編輯指令的快取記憶體
- 運行: 測試和建立運行分析資料
- 二進位檔案 :建立工件二進位檔案 (不可跨環境共享)
- SelectiveTests :選擇性測試快取
範例:
bash
# Set Tuist-specific cache directory
export TUIST_XDG_CACHE_HOME=/tmp/tuist-cache
tuist cache
# Or use standard XDG variable
export XDG_CACHE_HOME=/tmp/cache
tuist cache
國家目錄{#state-directory}#
環境變數:
TUIST_XDG_STATE_HOME(優先)XDG_STATE_HOME
預設: ~/.local/state/tuist
用於:
- 日誌 :日誌檔案 (
logs/{uuid}.log) - 鎖 :驗證鎖檔案 (
{handle}.sock)
範例:
bash
# Set Tuist-specific state directory
export TUIST_XDG_STATE_HOME=/var/log/tuist
tuist generate
# Or use standard XDG variable
export XDG_STATE_HOME=/var/log
tuist generate
優先順序{#precedence-order}#
在決定使用哪個目錄時,Tuist 會依下列順序檢查環境變數:
- Tuist 特有的變數 (例如:
TUIST_XDG_CONFIG_HOME) - 標準 XDG 變數 (例如
XDG_CONFIG_HOME) - 預設位置 (例如
~/.config/tuist)
這可讓您
- 使用標準的 XDG 變數,以一致的方式組織您所有的應用程式
- 當您需要 Tuist 的不同位置時,使用 Tuist 專用變數覆寫
- 依靠合理的預設值,無需任何設定
常見用例{#common-use-cases}#
每個專案隔離 Tuist{#isolating-tuist-per-project}#
您可能想要隔離 Tuist 的快取和每個專案的狀態:
bash
# In your project's .envrc (using 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/CD 環境{#ci-cd-environments}#
在 CI 環境中,您可能想要使用臨時目錄:
yaml
# GitHub Actions example
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
使用獨立目錄進行除錯{#debugging-with-isolated-directories}#
在調試問題時,您可能會想要一筆勾消:
bash
# Create temporary directories for debugging
export TUIST_XDG_CACHE_HOME=$(mktemp -d)
export TUIST_XDG_STATE_HOME=$(mktemp -d)
export TUIST_XDG_CONFIG_HOME=$(mktemp -d)
# Run Tuist commands
tuist generate
# Clean up when done
rm -rf $TUIST_XDG_CACHE_HOME $TUIST_XDG_STATE_HOME $TUIST_XDG_CONFIG_HOME