Tips
1. direnvのインストール(例: Homebrewの場合)
`direnv`は、ディレクトリに移動するだけで自動的に環境変数を設定・解除できるツールです。プロジェクトごとに異なる設定が必要な場合に非常に便利で、シェルの起動スクリプトを汚染することなく環境をクリーンに保てます。
技術・言語・ツール: direnv
direnvは、ディレクトリに移動するだけで自動的に環境変数を設定・解除できるツールです。プロジェクトごとに異なる設定が必要な場合に非常に便利で、シェルの起動スクリプトを汚染することなく環境をクリーンに保てます。
プロジェクトごとの環境変数を自動で切り替えるdirenv
開発プロジェクトによっては、特定の環境変数(APIキー、データベース接続情報、パスなど)が必要になることがあります。direnvを使えば、.envrcファイルに設定を記述し、そのディレクトリに入るだけで自動的に環境変数がロードされ、ディレクトリから出ると自動的にアンロードされます。これにより、手動での環境変数設定や、異なるプロジェクト間での環境変数の衝突を防ぐことができます。
# 1. direnvのインストール(例: Homebrewの場合)
brew install direnv
# 2. シェルにフックを追加(例: Zshの場合。~/.bashrc, ~/.fishrc など使用しているシェルに合わせて)
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
# 3. 新しいシェルを起動するか、設定を再読み込み
source ~/.zshrc
# 4. プロジェクトディレクトリで.envrcファイルを作成
# 例: my-project ディレクトリ内で
cd my-project
echo 'export DATABASE_URL="postgresql://user:password@localhost:5432/my_project_db"' > .envrc
echo 'export API_KEY="your_secret_key_here"' >> .envrc
# 5. .envrcの読み込みを許可(初回のみ、またはファイル変更時に必要)
direnv allow
# 6. 環境変数がロードされたことを確認
echo $DATABASE_URL
# postgresql://user:password@localhost:5432/my_project_db
# 7. ディレクトリを移動すると、環境変数は自動的にアンロードされる
cd ..
echo $DATABASE_URL
# (何も表示されないか、以前の設定が表示されるはず)
注意点とおすすめポイント:
.envrcファイルは機密情報を含む可能性があるため、バージョン管理システム(Gitなど)には絶対にコミットせず、.gitignoreに追加して管理しましょう。direnvは、特定のシェル(bash, zsh, fishなど)のフックとして動作します。設定方法は各シェルのドキュメントを参照してください。- 複数のプロジェクトを同時に開発する際に、環境変数の切り替え忘れによるバグや誤操作を防ぐのに非常に効果的です。