.env ファイルパーサー|検証とフォーマット
.envファイルパーサーで構文検証、重複検出、アルファベット順ソート、JSON・YAML・Dockerフォーマットへの変換が可能。ブラウザのみで完結。
.env ファイルパーサーとは?
.env File Parser & Formatter は、環境変数ファイルを操作するためのブラウザベースのツールです。KEY=VALUE の内容を解析して構文エラーを検出し、重複キーを特定し、ファイルの統計情報を表示します。また、ワンクリックで変数を JSON、YAML、Docker --env-file、または docker-compose.yml 形式に変換し、同じキーが両方のファイルに異なる値で現れる場合はインタラクティブな競合解決を伴って2つの .env ファイルをマージします。
デプロイ前に環境ファイルを監査したい場合、別のフォーマットでチームメンバーと設定を共有したい場合、ベースの .env と環境固有のオーバーライドを結合したい場合、または長いファイルをアルファベット順に並べ替えてスキャンしやすくしたい場合に使用してください。すべてがブラウザ内で動作するため、秘密情報がサーバーに触れることはありません。
主な機能
- クォートされた値と複数行をサポートしたKEY=VALUEペアの解析 — シングルクォートおよびダブルクォートで囲まれた値は自動的にアンクォートされます。クォートされていない値の後にあるインラインコメントは削除されます。
- 警告バッジによる重複キーの検出 — 複数回出現するすべてのキーは、黄色の警告アイコンとともに検証パネルにフラグが立てられます。
- 構文の検証:= の欠落、空のキー、無効な文字 — パーサーはキーが文字またはアンダースコアで始まり、英数字とアンダースコアのみを含む必要があること (
/^[a-zA-Z_][a-zA-Z0-9_]*$/) を強制します。各違反は特定の行番号を報告します。 - 変数のアルファベット順ソート — ソートボタンは、入力テキストエリアを昇順の辞書順で変数を使って書き直し、元の内容を置き換えます。
- JSON形式への変換 — すべての変数キーと値を含む整形されたJSONオブジェクトを生成します。
- YAML形式への変換 — 値にYAML特殊文字 (
:,#,{,},[,],,,&,*,!,|,>,',",%,@, ``)、ブール値に似た文字列 (true,false,yes,no,null`)、純粋な数値文字列、または空の値が含まれる場合、自動的にダブルクォートで囲みます。 - Docker --env-file 形式への変換 —
docker run --env-fileが必要とする、クォートなしの素のKEY=VALUEペアを出力します。 - docker-compose.yml 環境ブロックへの変換 — リストアイテム (
- KEY=VALUE) を含むenvironment:YAMLブロックに出力をラップし、docker-compose.ymlサービス定義にそのまま貼り付けられます。 - 競合検出と解決を伴う2つの .env ファイルのマージ — 並列テキストエリア入力。競合は両方の値とともにリストされるので、適用前にどちらを優先するか選択できます。
- 統計の表示:変数数、コメント、空行 — 解析後に4つのカウンターが表示されます:変数、コメント、空行、重複。
- ファイルアップロードのサポート —
.env、.env.*、または.txtファイルをディスクから直接アップロードします。 - 100% クライアントサイド処理 — 秘密情報がブラウザの外に出ることはありません。
.env ファイルパーサーの使い方
ステップ1:.env コンテンツを入力またはアップロードする
ツールの上部にある Parse & Validate タブと Merge タブを使って2つのモードを切り替えます。
Parse モード では、.env コンテンツを左側の入力テキストエリアに直接貼り付けるか、Upload をクリックしてディスクからファイルを読み込みます(.env、.env.*、.txt ファイルを受け付けます)。自分のデータなしでツールの動作を探索したい場合は、Load Example をクリックすると、コメント、クォートされた値、重複キー、意図的に不正な行を含むデモファイルで入力が埋まります。
入力例:
# Application Configuration
APP_NAME=my-awesome-app
APP_ENV=production
APP_PORT=3000
# Database
DATABASE_URL="postgres://user:pass@localhost:5432/mydb"
DATABASE_POOL_SIZE=10
# Duplicate key (triggers warning)
APP_PORT=8080
# Invalid line (triggers error)
MISSING_EQUALS
ステップ2:統計情報と検証パネルを確認する
コンテンツを入力または貼り付けた後、エディターの下に2つのパネルが表示されます:
Statistics はグリッドに4つのカウンターを表示します:
- Variables — 有効な KEY=VALUE エントリの数
- Comments —
#で始まる行 - Empty Lines — 空白行
- Duplicates — 複数回出現するキー(ゼロでない場合はカウンターが黄色になります)
Validation は見つかったすべての問題をリストします:
- 重複キーは黄色の三角アイコンとともに表示されます:"Duplicate key: APP_PORT"
- 構文エラーは赤いXアイコンとともに、正確な行を引用して表示されます:"Line 14: Missing '=' sign"
- 問題がない場合は、緑のチェックで確認されます:"No issues found"
ステップ3:出力形式を選択する
右パネルの形式セレクターには5つのオプションがあります:
| ボタンラベル | 出力形式 | 主な用途 |
|---|---|---|
.env | KEY=VALUE(再クォート) | クリーンで正規化された .env |
JSON | 整形されたJSONオブジェクト | JSON対応アプリへの設定 |
YAML | KEY: value(自動クォート) | Ansible変数、Helm値、アプリ設定ファイル |
Docker --env-file | 素の KEY=VALUE、クォートなし | docker run --env-file <ファイル> |
docker-compose.yml | environment: リストブロック | サービス定義に貼り付け |
任意のボタンをクリックすると出力が即座に切り替わります。すべての形式でコメント行と空行は除外されます — 有効な変数エントリのみが含まれます。
.env 出力形式はクォートも正規化します:スペース、#、または " を含む値は自動的にダブルクォートで囲まれ、内部のダブルクォートはエスケープされます。
ステップ4:ソートとコピー
Sort をクリックすると、入力テキストエリアがアルファベット順の変数で書き直されます。これは入力をその場で変更するため、ソートされたコンテンツが解析と出力の新しいソースになります。
Copy をクリックすると、出力パネルのヘッダーからフォーマットされた結果がクリップボードにコピーされます。
ステップ5:2つの .env ファイルをマージする(オプション)
Merge タブに切り替えます。File A テキストエリアに1つの .env ファイルを貼り付けるかアップロードし、File B にもう1つを貼り付け、Merge Files をクリックします。
- 2つのファイルに競合するキー(異なる値を持つ同じキー)がない場合、マージはすぐに完了し、結果がさらに編集するためにParseタブの入力に表示されます。
- 競合がある場合は、Conflict Resolution パネルが各競合キーをボタンとして表示される両方の値とともにリストします。保持したい値(AまたはB)のボタンをクリックし、Apply Merge をクリックしてあなたの選択でファイルを結合します。
実践的な例
デプロイ前の本番 .env の監査
本番環境ファイルを貼り付け、検証パネルを確認します。たった1つの "Missing '=' sign" エラーや重複キーの警告でも、実行時設定エラーを引き起こす可能性のあるコピー&ペーストミスを示している場合があります。Statisticsカウンターは、期待する変数リストと照合するための素早いカウントを提供します。
Docker向けの変換
Node.js で dotenv と動作する .env ファイルがあるが、Dockerコンテナに渡す必要がある場合。docker run --env-file .env での使用には Docker --env-file を選択し、または出来上がった environment: ブロックを取得するには docker-compose.yml を選択します:
environment:
- APP_NAME=my-awesome-app
- APP_ENV=production
- DATABASE_POOL_SIZE=10
ブロックをサービス定義に直接貼り付けます。
ベースファイルとオーバーライドファイルのマージ
プロジェクトに共有デフォルトを持つ .env.base と開発者固有のオーバーライドを持つ .env.local があります。.env.base をFile Aに、.env.local をFile Bにロードし、Merge Files をクリックし、ローカルオーバーライド値を選択して競合を解決し、マージされた出力を作業用の .env としてコピーします。
Tips とベストプラクティス
長い設定を貼り付ける代わりにファイルをアップロードしてください。 ファイルアップロードボタンは .env、.env.*、.txt 形式を受け付けます。これにより、クリップボードのサイズ制限や、ターミナルからコピーする際に発生する可能性のある末尾スペースによる偶発的な破損を避けられます。
diff する前にソートしてください。 2つの環境ファイルを手動で比較する場合は、最初に両方をソートしてください。ソートボタンは順序を正規化するため、diffツールが異なる変数の順序からのノイズではなく意味のある変更を見つけられます。
YAML出力はブール値に似た値を自動的にクォートします。 フォーマッターは true、false、yes、no、null などの文字列を検出し、ダブルクォートで囲みます。これにより、YAMLパーサーが FEATURE_FLAG=true を文字列 "true" ではなくブール値 true として解釈するのを防ぎます。
.env 出力形式はスペースを含む値を再クォートします。 入力に SECRET_KEY=my secret with spaces がある場合、.env 出力は SECRET_KEY="my secret with spaces" としてレンダリングします。これは dotenv 対応のローダーに安全にコピーバックできます。
クォートされていない値のインラインコメントは削除されます。 APP_PORT=3000 # HTTP port のような行は値を 3000 として解析し、インラインコメントを破棄します。DESCRIPTION="hello # world" のようなクォートされた値は # を値の一部として保持します。
よくある問題とトラブルシューティング
"Line N: Missing '=' sign" — 行にコンテンツがあるが等号がありません。これは export APP_NAME=foo のようなシェルエクスポートステートメントを貼り付ける際の最も一般的なエラーです。貼り付ける前に export キーワードを削除してください。
"Line N: Empty key" — 行が = で始まっています(例:=value)。パーサーは等号の前に空でないキーが必要です。
"Line N: Invalid key 'MY-KEY'" — POSIX標準によりハイフンは環境変数キーに許可されておらず、このパーサーは ^[a-zA-Z_][a-zA-Z0-9_]*$ を強制します。ハイフンをアンダースコアに置き換えてください:MY_KEY。
重複キーの警告があるが値が同じ — パーサーは値が異なるかどうかに関わらず、複数回出現するすべてのキーにフラグを立てます。入力から冗長な行を削除してください。
Mergeボタンがグレーアウトしている — File AとFile Bの両方にコンテンツが必要です。いずれかのテキストエリアが空の場合、ボタンは無効になります。
YAML出力に予期しないクォートがある — 純粋に数値または boolean リテラル (true, false, yes, no, null) に一致する値は、文字列型を保持するためにクォートされます。これは意図的で正しいYAMLの動作です。
プライバシーとセキュリティ
.env File Parser はサーバーサイド処理なしに完全にブラウザ内で動作します。APIキー、データベース認証情報、シークレットトークンを含む環境変数はネットワーク上で送信されることはありません。解析、検証、形式変換、マージのロジックはすべてローカルで実行されるJavaScript関数です。ツールは最初のページロード後はオフラインで動作します。サードパーティの分析スクリプトはテキストエリアのコンテンツにアクセスできません。
よくある質問
.env File Parser は無料ですか? はい、アカウントなしで完全無料です。
実際のAPIキーや秘密情報を貼り付けても安全ですか? はい。すべての処理はローカルのJavaScriptを使用してブラウザ内で行われます。何もサーバーに送信されません。秘密情報はあなたのマシン上に残ります。
オフラインで使用できますか? はい。ページのロード後、解析と変換はインターネット接続なしで動作します。
複数行の値をサポートしていますか? パーサーは1行のクォートされた値を処理します。複数行にまたがる真の複数行値(バックスラッシュ継続またはheredocスタイルの構文を使用)は現在サポートされていません。解析前に複数行のコンテンツを1つのクォートされた行に分割してください。
クォートされた値が出力でクォートが外れて表示されるのはなぜですか? unquoteValue 関数は値全体を囲む一致するシングルまたはダブルクォートを削除します。DATABASE_URL="postgres://..." は内部的に postgres://... になり、出力形式で必要に応じて再クォートされます。これはフォーマット変換のための正しい動作です。
出力でコメント行はどうなりますか? コメント(# で始まる行)はすべての出力形式から除外されます。有効な変数エントリのみが含まれます。コメントはStatisticsパネルでカウントされますが、出力には書き込まれません。
2つ以上のファイルをマージできますか? ツールは一度に正確に2つのファイルのマージをサポートします。3つ以上のファイルをマージするには、まずA+Bをマージし、結果をParseモードにコピーし、それをFile CとのFile Aとして2回目のマージに使用します。
ソート操作はコメント行を保持しますか? いいえ。ソートボタンは解析された有効な変数のみを使用してソートされた入力を再構築し、コメント行と空行を破棄します。クリーンで正規化されたファイルが必要な場合にソートを使用してください。
Docker --env-file 形式とは何ですか? docker run --env-file はシェルクォートなしの素の KEY=VALUE 行を期待します。Docker出力形式はスペースを含む値でもクォートを省略しますが、これはDocker形式では正しいですがシェルスクリプトでは失敗します。シェルセーフなクォートが必要な場合は .env 形式を使用してください。
マージせずに2つのファイル間でどの変数が異なるかを検出できますか? Mergeモードに切り替えて Merge Files をクリックしてください。競合リストには、File AとFile Bで異なる値を持つすべてのキーが表示され、異なる変数の実用的なdiffとして機能します。
関連ツール
- Config Generator — 様々なフレームワークと環境のための構造化された設定ファイルを生成します。
- Docker Converter — Docker関連の設定形式間で変換します。
- YAML to TOML — YAMLとTOML設定ファイル形式間で変換します。
.env File Parserを今すぐ試す: .env File Parser & Formatter