Turborepo

處理平台

Node.js 版本

若要考慮 Node.js 版本,請使用 package.json 中的 engines 鍵。Turborepo 會考慮此欄位的變更,並相應地錯過快取。

作業系統、架構和其他任意條件

對於進階使用案例,您可能會希望作業系統 (OS)、架構或其他外部因素有助於您的雜湊值。

1. 將任意檔案寫入磁碟

首先,建立一個腳本來處理您感興趣的雜湊值貢獻者。例如,以下是一個 Node.js 腳本,可識別平台和架構,並將這些詳細資訊寫入檔案 (turbo-cache-key.json)

./scripts/create-turbo-cache-key.js
#!/usr/bin/env node
 
const { writeFileSync } = require('fs');
const { join } = require('path');
 
const { platform, arch } = process;
const file = 'turbo-cache-key.json';
const str = JSON.stringify({ platform, arch });
console.log(`Generating cache key: ${str}`);
writeFileSync(file, str);

2. 將檔案新增至 .gitignore

您不會希望將此檔案提交至原始碼控制,因為它取決於環境。將它新增至您的 .gitignore

.gitignore
+ turbo-cache-key.json

3. 將檔案新增至雜湊值

現在,請確定 turbo 知道該檔案,方法是將它新增至任務輸入。您可以使用兩種方式執行此操作

  • 對於特定任務:將檔案包含在任務的 inputs 陣列
./turbo.json
{
  "tasks": {
    "build-for-platforms": {
      "dependsOn": ["^build"],
      "inputs": ["$TURBO_DEFAULT$", "turbo-cache-key.json"]
    }
  }
}
./turbo.json
{
  "globalDependencies": ["turbo-cache-key.json"],
  "tasks": {
    ...
  }
}

4. 在執行 turbo 之前產生檔案

最後,您會希望確保在執行 turbo 之前執行腳本。例如

./package.json
{
  "scripts": {
    "build-for-platforms": "node ./scripts/create-turbo-cache-key.js && turbo run build"
  }
}

現在,當計算 build 任務的雜湊值時,turbo run build 將會考量 turbo-cache-key.json 的內容。

小時

節省的總運算量
開始使用
遠端快取 →

本頁內容