direnv
ディレクトリに .envrc というファイルを用意しておくと,当該ディレクトリに入ったときに特定の環境変数をセットしてくれたりする.
HERPでは主に,リポジトリごとに固有の開発環境を開発者間で共有するために用いられている.
インストール
ディレクトリごとに環境変数を設定する
code:.envrc
dotenv
code:.env
FOO=bar
BAZ=qux
direnv が Nix のオタクによって開発されている (余談: direnv も Nix を用いてビルドされている) ためか,Nix とよく統合されている. .envrc に use nix と記述しておけば,当該ディレクトリに入った際に,shell.nix に記述された依存を自動的にインストールし,$PATH を通してくれる.
開発に必要な依存を各リポジトリに記述しておくことで,環境構築の煩わしさを軽減することができる.
code:.envrc
use nix
code:shell.nix
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = [
pkgs.grpc-tools
pkgs.nodejs
pkgs.yarn
]
}
.envrc に use nix が含まれる場合,ディレクトリに入った際の読み込みに時間がかかるようになる.
キャッシュを効かせるため,nix-direnv などをインストールしておくのがオススメ.