.env ファイルパーサー
.env ファイルをオンラインで解析し、キーと値をテーブル表示。dotenv のルールで = の欠落・コロンの書き方・重複キー・空の値を検出し、JSON にエクスポートできます。無料、ブラウザ内で処理。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
入力例
# データベース設定
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_PASSWORD="s3cr3t"
# API キー
API_KEY=
STRIPE_KEY=your-stripe-key
# 重複キーの例
APP_ENV=development
APP_ENV=production
パーサーは DB_PASSWORD の引用符を外し、API_KEY に「値が空です」、2 つ目の APP_ENV に「キーが重複しています」を表示し、ステータスは「有効 6 件、警告 2 件。」になります。エクスポートした env.json の APP_ENV は最後の値です。
{
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "myapp",
"DB_PASSWORD": "s3cr3t",
"API_KEY": "",
"STRIPE_KEY": "your-stripe-key",
"APP_ENV": "production"
}
コロン・空白・そのほかのキー名
dotenv は YAML 風の KEY: value も読みますが、コロンの後に空白が必要です。dotenv が読み飛ばす行はテーブルでエラーになりエクスポートされません。dotenv が受け付けるものの珍しいキーは警告になり、エクスポートされます。
APP_NAME: 予約システム
export API_URL: https://api.example.jp/v2
SMTP HOST=smtp.example.jp
mail.from=info@example.jp
PORT:8080
{
"APP_NAME": "予約システム",
"API_URL": "https://api.example.jp/v2",
"mail.from": "info@example.jp"
}
ステータスは「有効 2 件、警告 1 件、エラー 2 件。」です。3 行目はキーに空白があり、dotenv のキーのパターン [\w.-]+ に合わないのでエラー、5 行目はコロンの後に空白がありません。キーに全角スペース(U+3000)が入った場合も同じくエラーになります。
Node.js 自身のパーサー(—env-file、util.parseEnv())はルールが異なり、Node.js 22.23.3 ではこのテキストから SMTP HOST と mail.from を読み、コロンの 3 行はすべて無視します。
proto という名前のキーだけは、エクスポートが dotenv.parse() と異なります。dotenv はこのキーを取り除きます。
__proto__=keep
A=1
{
"__proto__": "keep",
"A": "1"
}
検出される一般的な .env の問題
- = 記号がない——
=もコロンもなく、キーと値のペアとして解析できない行。 - コロンの書き方——
PORT:8080やPORT : 8080は dotenv が読み飛ばします。PORT=8080かPORT: 8080と書いてください。 - 空の値——キーは存在するが値が空。アプリによっては実行時エラーになる可能性があります。
- 重複キー——同じキーが複数回出現。dotenv は最後の値を使いますが、ほかのローダーも同じとは限りません。
- 一般的でないキー名——キー名は英字かアンダースコアで始め、英数字とアンダースコアだけにするのが無難です。
.・-を含むキーや数字で始まるキーは dotenv でも読み込まれます(警告)。空白などを含むキーは読み込まれません(エラー)。 - 引用符なしの値に # がある——dotenv はそこからコメントとみなすので、
COLOR=#fffは空になり、URL=https://example.com/#topは#topが消えます。値を引用符で囲んでください。ルールは dotenv の解析ルールを参照。
制限
- 変数は展開しません。
${HOME}/dataはそのまま残ります。dotenv-expand、Docker Compose、一部のフレームワークはこうした参照を展開します。 - dotenv のルールだけです。Node.js の
—env-file、Docker Compose のenv_file、Python の python-dotenv、シェルのsourceは、引用符・コロン・export・#の扱いがそれぞれ異なります。実際に使うローダーで確認してください。 - 値は平文で表示されます。テーブルはシークレットを隠さないので画面共有に注意してください。ファイルを共有する前に APIキーマスキングで値を置き換えられます。
FAQ
どの .env 構文に対応していますか?
dotenv 16.6.1(Node.js 用の dotenv パッケージ)の解析ルールに従います。1 行に 1 つの KEY=VALUE、またはコロンの後に空白を入れた KEY: value で、先頭に export を付けられます。キーには英数字・_・.・- を使えます。# で始まる行はコメントです。引用符なしの値の後ろにある # から行内コメントになるので、PORT=5432 # default は 5432 になり、引用符内の # は残ります。引用符で囲んだ値は複数行にまたがれます。
クォートで囲まれた値はどう処理されますか?
値を囲むシングルクォート、ダブルクォート、バッククォートは外し、中の空白は残します。\n を改行にするのはダブルクォートの値だけです。閉じていない引用符は値に残り、備考列に表示します。
エラーとして検出されるのはどんなケースですか?
dotenv が読み飛ばす行はエラーになり、エクスポートされません。= もコロンもない行(= がありません)、空のキー、MY KEY=1 のように空白など dotenv が許さない文字を含むキー(一般的でないキー名)、PORT:8080 のようにコロンの後に空白がない・前に空白がある行です。空の値・重複キー、そして dotenv は受け付けるが [A-Za-z_][A-Za-z0-9_]* に一致しないキー(my.key、9KEY など)は警告で、エクスポートには含まれます。
.env ファイルはサーバーに送信されますか?
いいえ。すべての解析処理はブラウザ内の JavaScript で完結し、テキストは保存されません。.env にはシークレットが入るため、このページでは Google Analytics と AdSense も読み込みません。
JSON エクスポートで何が出力されますか?
テーブルでエラーにならなかったすべてのキーを含む JSON オブジェクトで、dotenv.parse() の結果と同じです。コメント行とエラー行は含まれません。重複キーは dotenv と同じく最後の値になり、テーブルでは出現ごとに警告が付きます。違いは __proto__ という名前のキーだけで、このツールは通常のプロパティとして出力し、dotenv.parse() は取り除きます。JSON エクスポートは解析の後、エクスポートできるキーが 1 つ以上あるときだけ使えます。