リポジトリ
ドキュメント
環境変数の使用

環境変数の使用

環境変数はソースコードにはキャプチャされないため、マシン間で簡単に共有することはできません。リポジトリの環境変数を設定するには、Turborepo の多くの機能を利用する必要があります。

Next.js および環境変数をロードする他のライブラリとの連携

フレームワークが .env などの特定のファイルから環境変数を自動的にロードする場合、これらのファイルの場所を turbo に指示する必要があります。以下に、環境ファイルを自分でロードする Next.js と Vite のベースライン構成を示します。

{
  "$schema": "https://turbo.dokyumento.jp/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 をグローバルに使用している場合、ターミナルで turbo コマンドの前に dotenv -- を記述できるように、dotenv-cli もグローバルにインストールする必要があります。

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"]
    }
  }
}