.env パーサー&バリデーター

.env ファイルを貼り付けるか、ボックスにドロップするだけで、解析・チェック・説明付きで返ってきます:すべてのキーが値がマスクされた表に並び、すべての問題が行番号付きで一覧表示されます。重複したキー、無効な名前、代入ですらない行、デフォルト値を静かに上書きする空の値。すべてブラウザ内で動作し、ファイルがアップロードされることは決してありません。本番の .env は秘密の束であり、そのように扱われるべきだからです。

何をチェックするのか、そしてなぜか

.env 形式は標準ではなく慣習であるため、ファイルは静かに腐敗します。すべてのローダーは KEY=VALUE には同意し、それ以外すべてで意見が分かれます:export 接頭辞を取り除くかどうか、引用符を尊重するかどうか、インラインコメントが値を終わらせるかどうか、そして最も危険な点として、同じキーの 2 つの定義のうちどちらが勝つのか。このバリデーターは共通分母のルールを適用し、ローダーが食い違う箇所を報告します:両方の行番号付きで 2 回定義されたキー、どのシェルも受け付けない名前、開いて決して閉じない引用符、等号すら存在しない行。空の値は失敗ではなくフラグ対象となります。KEY= は合法だからです。しかしそれはアプリケーションのデフォルト値を空文字列で上書きします。これは、あるマシンでは動くサービスが別のマシンでは動かない最も一般的な理由です。

プライバシー設計こそが機能です。本番の .env はデータベースのパスワード、API キー、セッションシークレットを 1 つの小さなファイルに集約します。そして自然なデバッグの動き——どこかに貼り付けて助けを求めること——こそが、そのまま漏洩につながります。AI チャット、課題トラッカー、チームチャンネルはすべてコピーを保持し、多くの場合検索可能で、多くの場合永久に残ります。そこでこのツールは、ログパーサーや証明書ジェネレーターと同じルールに従います:機密入力がブラウザを離れることは決してなく、値は画面上でマスクされ、エクスポートはあなたが意図的にダウンロードするファイルだけです。付随する記事「env ファイルは秘密が漏れる場所」では、ファイル自体の衛生管理——何を含めるべきか、何を含めるべきでないか、そして漏れてしまった場合にどうするか——を扱っています。

よくある質問

本番の .env をここに貼り付けても安全ですか?

はい。それこそがこのツールの目的です。解析は完全にブラウザ内で行われます:アップロードはなく、サーバーへの往復もなく、貼り付けた内容がどこかに送信されたり保存されたりすることはありません。値はデフォルトで画面上にマスクされるため、画面共有やスクリーンショットでも漏れません。AI チャット、チケット、チームメッセージに .env を貼る場合は同じとは言えません。それらはすべてコピーを保持します。env ファイルと秘密の漏洩に関する記事で、より安全な習慣を説明しています。

最後の定義が勝つのなら、キーの重複はなぜ問題なのですか?

ファイルを編集する人間には、どちらが勝つのか分からないからです。4 行目の値を変更して再デプロイしても、何も起きません——ローダーは静かに 41 行目を使っていたのです。さらに悪いことに、フレームワークによって最初の定義を取るものと最後の定義を取るものがあり、同じファイルがスタック全体で異なる振る舞いをします。1 つのキー、1 行、1 つの値:バリデーターはすべての重複を両方の行番号付きで一覧表示するので、死んだ行を削除できます。

アプリが .env にない変数を読んでいます。どうやって見つけますか?

使用箇所のボックスにコードや設定を貼り付けてください。パーサーは参照されているすべての名前——process.env.X、process.env[’X’]、import.meta.env.X、${X}、$X——を抽出し、両方向で報告します:コードが参照しているのにファイルが定義していない名前(実行時に undefined になり、通常は最悪のタイミングで表面化します)と、ファイルが定義しているのに何も参照していないキー(死んだ設定でありながら、驚くほど頻繁に現役の秘密を保持しています)。

無効なキーとはどのようなものですか?

文字またはアンダースコアの後に文字、数字、アンダースコアが続く形でないものはすべて無効です。数字で始まるキー、ダッシュやドットを含むキー、余分な空白を含むキーは、多くのローダーやシェルによって破棄されたり壊されたりします。bash ではきれいに読み込めるファイルが、まさにこの理由で Node ローダーでは失敗することがあります。バリデーターは行番号付きでそれらをフラグ表示します。エントリ表にはその行も表示されるので、何が失われるかを確認できます。

エクスポートには実際の値が含まれますか?

はい。JSON と YAML のダウンロード、およびコピーした JSON は実際の構成そのものです。マスクは表示上の保護であり、あなた自身のデータの墨消しではありません。エクスポートしたファイルは .env そのものとまったく同じように扱ってください:公開リポジトリにコミットしたり、チケットに添付したりしてはいけません。共有できる安全な版が必要な場合は、マスクされたスクリーンショットかキーの一覧を共有してください。