環境変数の使用
環境変数はソースコードにはキャプチャされないため、マシン間で簡単に共有することはできません。リポジトリの環境変数を設定するには、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
を使用する場合
-
すべての変数をモノレポのルートにある
.env
ファイルに配置します。 -
dotenv-cli
をリポジトリのルートにインストールします。
{
"devDependencies": {
"dotenv-cli": "latest"
}
}
- 環境変数を
turbo
コマンドに注入するようにスクリプトを調整します。
{
"scripts": {
"dev": "dotenv -- turbo dev"
}
}
.env
ファイルをturbo.json
に追加します。
{
"globalDotEnv": [".env"],
"pipeline": {
"dev": {
"dependsOn": ["^build"]
}
}
}
グローバルにインストールされた turbo
を使用する場合
turbo
をグローバルに使用している場合、ターミナルで turbo
コマンドの前に dotenv --
を記述できるように、dotenv-cli
もグローバルにインストールする必要があります。
dotenv -- turbo dev
高度な設定: ワークスペースごとの環境変数
ワークスペースに独自の環境変数の読み込みを担当させることを好むかもしれません。このアプローチはより柔軟で、package.json
スクリプトでの追加の設定オーバーヘッドを気にしない場合は、より良い結果が得られます。
この戦略を使用するには
-
変数が必要なパッケージのルートに
.env
ファイルを配置します。 -
ワークスペースに
dotenv-cli
をインストールします。
{
"scripts": {
"dev": "dotenv -e .env.development -- start-server",
"build": "dotenv -e .env -- bundle-app"
},
"devDependencies": {
"dotenv-cli": "latest"
}
}
.env
ファイルをturbo.json
に追加します。
{
"globalDotEnv": [".env"],
"pipeline": {
"dev": {
"dotEnv": [".env.development"],
"dependsOn": ["^build"]
}
}
}