概要
direnvはディレクトリごとに環境変数を定義することが出来るツールです。direnvで定義されたディレクトリがカレントになった場合にのみ環境変数が有効になります。
例えば、本来bundlerでインストールしたgemを実行しようとすると下記のように冗長になります。
ターミナル
$ bundle exec rails c
direnvを用いてパスを通すことで下記のように簡略化が可能です。
ターミナル
$ rails c
手順
1.direnvをインストールする
homebrewでも取り扱っているので、brewコマンドでインストールします。
ターミナル
$ brew install direnv
2.direnvの設定を行う
direnvを利用出来るようにする為にシェルの設定ファイル(~/.bashrcなど)に下記を追記します。
~/.bashrc
eval "$(direnv hook bash)"
ちなみにzshを利用している場合は下記のように変更してください。
~/.zshrc
eval "$(direnv hook zsh)"
追記したら設定を反映させます。
ターミナル
$ source ~/.bashrc
3.direnv用に環境変数を設定する
環境変数を設定したいディレクトリに移動して、設定ファイルを設置します。
まずは該当ディレクトリに移動します。
ターミナル
$ cd project_dir
.envrc
というファイル名で設定ファイルを設置します。今回はproject_dir/bin
にパスを通します。
.envrc
export PATH=./bin:$PATH
例えば、npmの実行ファイルにパスを通したい場合は下記。
.envrc
export PATH=$(npm bin):$PATH
最後にdirenvの設定を反映します。
ターミナル
$ direnv allow
ここまでの作業で環境変数が反映されてパスが通ったと思います。パスを通す以外にも、そのディレクトリだけで使いたい環境変数があれば有効活用してみてください。