環境変数
別名: env var / env / environment variable
OS やシェルが各プロセスへ渡す「名前と値」の組。
接続情報や動作モードなどデプロイ先ごとに変わる設定をコードの外に置くために使い、Node.js では process.env で読む。
公開:
定義
環境変数(environment variable) は、OS やシェルが各プロセスへ引き継ぐ「名前と値」の組。
データベース接続文字列や API キー、動作モードなど、デプロイ先ごとに変わる設定をソースコードから切り離して保持するために使う。
プロセス起動時に親から子へコピーされ、実行中のプロセスはその値を読み取って振る舞いを変える。
詳細
シェルでは export NAME=value で設定し $NAME で参照する。
Node.js は process.env.NAME、Python は os.environ["NAME"] で読む。
開発では値を .env ファイルに書き、dotenv 系ライブラリやフレームワークがそれを読み込んで process.env へ流し込む方式が一般的。The Twelve-Factor App(新しいタブで開く) は、設定を環境変数に置くことを推奨している。
よくある誤解
.envは常に自動で読まれる: 読まれない。
dotenv の呼び出しやフレームワークの規約(例: Next.js のNEXT_PUBLIC_接頭辞)に従って初めて反映される。- 実行中に書き換えれば即反映される: ビルド時に値が埋め込まれる構成では、変更後に再ビルドや再起動が必要になる。
関連
設定が読み込めない詰まりは Next.js の環境変数が読み込まれない のように表面化する。.env の読み込み自体は dotenv が担う。