儲存庫
文件
使用環境變數

使用環境變數

由於環境變數未擷取在原始碼中,因此無法輕鬆地在多台機器間共用。若要為您的儲存庫設定環境變數,您需要利用多項 Turborepo 功能。

與 Next.js 和其他載入環境變數的函式庫搭配使用

如果你的架構會從特定檔案自動載入環境變數,例如 .env,你必須告訴 turbo 這些檔案的位置。以下顯示 Next.js 和 Vite 的基本設定,它們會自行載入環境檔案

{
  "$schema": "https://turbo.dev.org.tw/schema.json",
  "globalDotEnv": [".env"],
  "pipeline": {
    "build": {
      "dotEnv": [".env.production.local", ".env.local", ".env.production", ".env"]
    },
    "dev": {
      "dotEnv": [".env.development.local", ".env.local", ".env.development", ".env"]
    },
    "test": {
      "dotEnv": [".env.test.local", ".env.test", ".env"]
    }
  }
}

載入你自己的變數

如果你需要在執行前將大量環境變數載入你的環境中,我們建議使用 dotenv-cli。這是將你的環境變數帶入開發任務的最簡單方法。

Turborepo 沒有將任何 .env 檔案載入環境中!你的任務必須自行處理 .env 檔案的載入。

使用已安裝在本地的 turbo

  1. 將你所有的變數放入單一儲存庫根目錄的 .env 檔案中。

  2. dotenv-cli 安裝到儲存庫的根目錄。

{
  "devDependencies": {
    "dotenv-cli": "latest"
  }
}
  1. 調整指令碼,將環境變數注入 turbo 指令。
{
  "scripts": {
    "dev": "dotenv -- turbo dev"
  }
}
  1. .env 檔案新增到 turbo.json
{
  "globalDotEnv": [".env"],
  "pipeline": {
    "dev": {
      "dependsOn": ["^build"]
    }
  }
}

使用已全球安裝的 turbo

如果您正在全球使用 turbo,您還需要全球安裝 dotenv-cli,這樣您就可以在終端機中 turbo 指令前面加上 dotenv --

dotenv -- turbo dev

進階設定:每個工作區的環境變數

您可能希望讓您的工作區負責載入自己的環境變數。如果您不介意 package.json 指令碼中額外的設定開銷,這種方法更靈活,並且可以獲得更好的結果。

若要使用此策略

  1. 將變數放入 .env 檔案(位於需要載入的套件根目錄中)。

  2. 在工作區中安裝 dotenv-cli

{
  "scripts": {
    "dev": "dotenv -e .env.development -- start-server",
    "build": "dotenv -e .env -- bundle-app"
  },
  "devDependencies": {
    "dotenv-cli": "latest"
  }
}
  1. .env 檔案新增至 turbo.json
{
  "globalDotEnv": [".env"],
  "pipeline": {
    "dev": {
      "dotEnv": [".env.development"],
      "dependsOn": ["^build"]
    }
  }
}