.envで環境ごとに異なる変数を扱う
(機密情報が含まれていないことを前提とする)
これが本来の.envの責務だと思うmrsekut.icon 環境ごとに異なるserverにアクセスする場合などに、その情報をどう管理するか?という話
e.g. dev環境ではdev serverに、prod環境ではprod serverに接続したい
(.envを使わずに)branchを分けてハードコードした場合、以下のような問題が起きる
単純にコンフリクトの可能性が高まる
通常のコードの中の一部でbranchごとに異なる変数を使用しているので差分検知が面倒
新しい環境を導入する際に対応が面倒
「環境ごとに異なる変数の一覧」のようなものが存在しないので、コード全体を見て回らないといけない
といった問題が起こるのは容易に考えうるので、
じゃあ「環境ごとに異なる変数の一覧」を管理するファイルを作ろうぜ、となるのは自然
.env.developmentや.env.productionのように環境ごとに書けば良い
環境ごとに差分が生じるのはせいぜい、共通で参照される.env内の
NODE_ENV=developmentのような記述のみ
これを見て、どのenv fileを読み込むかを決定すれば良い
branchごとに差分が生じるのもこの1行のみであり、コンフリクトの問題も起きづらい