プロジェクト別に環境変数を自動切替!direnvの設定方法と使い方
direnvを使ったプロジェクトごとの環境変数自動切替設定方法を解説。インストールから基本的な使い方、便利な設定まで実践的に紹介します。
direnv環境変数プロジェクト自動切替設定2026/5/25
direnvとは?
direnvは、ディレクトリに応じて環境変数を自動で切り替えるツールです。プロジェクトごとに異なる環境変数(APIキー、データベースURLなど)を手動で設定・解除する手間を省き、安全に管理できます。シェルの拡張機能として動作し、ディレクトリ移動時に.envrcファイルを読み込みます。
インストール方法
macOS (Homebrew)
brew install direnv
Linux (apt)
sudo apt install direnv
その他のOS
公式サイト(https://direnv.net)からバイナリをダウンロードするか、パッケージマネージャでインストールしてください。シェルへのフック設定
インストール後、シェルにフックを追加します。使用しているシェルに応じて以下の設定を.bashrcや.zshrcに追記します。
Bash
eval "$(direnv hook bash)"
Zsh
eval "$(direnv hook zsh)"
Fish
direnv hook fish | source
設定後、シェルを再読み込みしてください。
source ~/.bashrc # または ~/.zshrc
基本的な使い方
1. プロジェクトディレクトリに.envrcファイルを作成
プロジェクトのルートディレクトリに移動し、.envrcファイルを作成します。
cd /path/to/your/project
touch .envrc
2. 環境変数を記述
.envrcに設定したい環境変数をexportで記述します。
export DATABASE_URL="postgres://user:pass@localhost:5432/mydb"
export API_KEY="your-api-key-here"
export NODE_ENV="development"
3. ファイルを許可
初めて.envrcを作成した場合、direnvはセキュリティのため自動で読み込みません。以下のコマンドで許可します。
direnv allow
4. 動作確認
ディレクトリに移動すると、自動的に環境変数が設定されます。シェルに以下のようなメッセージが表示されます。
direnv: loading .envrc
direnv: export +DATABASE_URL +API_KEY +NODE_ENV
別のディレクトリに移動すると、自動的にunloadされます。
direnv: unloading
便利な設定例
複数行の値や特殊文字を含む場合
export SECRET="line1
line2"
export PATH="$PWD/bin:$PATH"
他のファイルから読み込む
source .env # .envファイルを読み込み
条件分岐
if [ -n "$CI" ]; then
export NODE_ENV="test"
fi
コマンドの実行結果を代入
export CURRENT_UID=$(id -u)
複数のプロジェクトで共通の設定を共有
共通設定を~/.config/direnv/lib/に置き、.envrcで読み込みます。
<h1>~/.config/direnv/lib/common.sh</h1>
export COMMON_VAR="value"
<h1>.envrc</h1>
source_env "$HOME/.config/direnv/lib/common.sh"
export PROJECT_SPECIFIC="value"
セキュリティに関する注意
.envrcはシェルスクリプトとして実行されるため、信頼できないソースからコピーしないでください。direnv allowを実行する前に、ファイル内容を確認しましょう。.envrcを.gitignoreに追加することを推奨します。トラブルシューティング
環境変数が反映されない
.envrcの構文エラーがないかチェック。direnv allowを実行したか確認。読み込み時にエラーが発生する
direnv: error .envrc: line X: syntax error
エラーメッセージに従って修正してください。
特定のディレクトリでdirenvを無効にする
.envrcの代わりに空の.envrcを作成し、direnv allowすると、そのディレクトリでは何も読み込まれません。
まとめ
direnvを使うことで、プロジェクトごとの環境変数管理が劇的に楽になります。インストールと設定は数分で完了し、日常の開発ワークフローに自然に溶け込みます。ぜひ導入して、手動での環境変数切り替えから解放されましょう。
詳細は公式ドキュメント(https://direnv.net)を参照してください。