.env 差分

2 つの .env を貼り付けると、変更された変数がすぐに表示されます。ボタン操作もアップロードも不要です。

オプション

使い方

  1. 1 つ目の .env を「環境 A」に、2 つ目を「環境 B」に貼り付けてください。追加・削除・変更されたすべての変数が入力と同時に表示され、押すボタンはありません。
  2. 比較は行単位ではなくキー単位です。行を移動したり、空行やコメントを追加しても差分にはならず、変数名や値の変更だけが差分になります。
  3. 「差分をコピー」で一覧全体を持ち出せます。各行は +、-、~ の後にキーと値(変更の場合は旧値と新値)が続き、チケットやメールにそのまま貼り付けられます。

例

2 つのファイル

【環境 A】
DB_HOST=localhost
DB_PORT=5432
API_KEY=sk-aaaaaaaaaa
FEATURE_NEW=false

【環境 B】
DB_HOST=db.prod.example.com
DB_PORT=5432
API_KEY=sk-bbbbbbbbbb
NEW_RELIC_KEY=nr-xyz

差分

+ NEW_RELIC_KEY=nr-xyz
~ DB_HOST=localhost -> db.prod.example.com
~ API_KEY=sk-aaaaaaaaaa -> sk-bbbbbbbbbb
- FEATURE_NEW=false
(+1 ~2 −1)

【環境 A】/【環境 B】の行は例の見出しです。実際には 2 つのファイルをそれぞれの入力欄に入れます。実際にキーや値が変わった箇所だけが表示され、DB_PORT はどちらも同じなので表示されません。キーの順序は関係ありません。

ルール・制限・既知の問題

  • これはキー単位の差分であり、行単位の差分ではありません。別の行へ移動した変数、追加された空行やコメントは差分になりません。変数名や値が変わったものだけを一覧にします。
  • キーの順序は関係ありません。ファイルはキーと値の対応表として比較するため、行を並べ替えても結果は変わりません。キーは大文字小文字を含めて完全一致で、DB_HOST と db_host は別のキーです。
  • コメント(# で始まる行全体)と空行は無視します。任意の「export 」接頭辞は取り除きます。値は引用符で囲めます。二重引用符の値では \n \r \t \\ \" を解釈し、単一引用符の値は中身をそのまま保ちます。
  • 値は既定では正確に比較するため、KEY= hello と KEY=hello は異なります。前後の空白を無視したいときは「値の前後の空白を無視」を、値を使わずキーの集合だけを比べたいときは「値を無視(キーのみ)」をオンにします。
  • 重複キーは dotenv と同様に最後の値が残り、重複が何件あったかを通知します。${OTHER_VAR} のような変数参照は書かれたまま比較し、展開はしません。
  • 制限: 合計 20 万文字を超えると、入力が止まって約 0.6 秒後に結果が更新されます。1 つのファイルが 100 万文字を超える場合はエラーとして報告し、切り捨ては行いません。画面に描画する変更行は最大 400 行ですが、コピーには常に全件が入ります。
  • ファイルのアップロード、URL からの読み込み、変数の展開、履歴、共有リンクはありません。すべてブラウザ内で動作し、何もアップロード・保存されません。

2 つの環境を比較したあとによく使われるツールです。