こちらで紹介されていた方法ですが、端末買い替え等の際の備忘録として実際に行った手順を記載しておきます。
環境: macOS Mojave 10.14.1
direnv のインストール
公式サイトの手順に従って、direnv をインストールします。
direnv -- Unclutter your .profile
今回は MacPorts でインストールしました。
sudo port install direnv
direnv の設定
こちらも direnv の公式サイトに各種シェル毎に手順が記載されています。
bash を利用している場合は下記の通り。
echo -n "eval \"\$(direnv hook bash)\"" >> ~/.bashrc
source ~/.bashrc
firebase-tools のインストール
既にインストール済でしたが、一応記載。
sudo port install nodejs11
npm install -g firebase-tools
Firebase のプロジェクトディレクトリ作成
各アカウント用のディレクトリを作成します。
example.local と example.private それぞれを別アカウントで利用する場合。
※ アカウント毎のディレクトリ(account.A, account.B)は分かりやすさのためで、特に必要というわけではありません。
mkdir -p ~/firebase/account.A/example.local/
mkdir -p ~/firebase/account.B/example.private/
各プロジェクト配下にログイン情報等が配置されるディレクトリを作成。
(説明用に2回に分けていますが、下記のみで十分です)
mkdir -p ~/firebase/account.A/example.local/.config
mkdir -p ~/firebase/account.B/example.private/.config
direnv 設定ファイル作成
通常は ~/.config
配下にログイン情報のファイルが作成されるようですが、これを環境変数 XDG_CONFIG_HOME
で上書きできるそうなので、各プロジェクトディレクトリ配下の .config
ディレクトリを参照するように設定します。
# account.A 用
cd ~/firebase/account.A/example.local
echo "export XDG_CONFIG_HOME=\$(pwd)/.config" > .envrc
direnv allow .
# account.B 用
cd ~/firebase/account.B/example.private
echo "export XDG_CONFIG_HOME=\$(pwd)/.config" > .envrc
direnv allow .
これで、各プロジェクトディレクトリに移動すると XDG_CONFIG_HOME
が書き換わり、他のディレクトリに移動すると元に戻ります。
$ cd ~/firebase/account.A/example.local
direnv: loading .envrc
direnv: export +XDG_CONFIG_HOME
$ cd ..
direnv: unloading
Firebase プロジェクトの初期化
あとは各ディレクトリで login / init するだけです。
cd ~/firebase/account.A/example.local
firebase login
firebase init
cd ~/firebase/account.B/example.private
firebase login
firebase init
これで、終わりです。
個人用と会社用が同じマシンにあるのはあまりよろしくないですし、そういうケースは少ないと思いますが、静的サイト用とアプリ用のような分け方は結構あると思うので、これは非常に便利です。