.env 文件解析器

在线解析 .env 文件,以表格形式可视化键值对,按 dotenv 的规则检测缺少等号、冒号写法、重复键、空值等问题,并导出 JSON。免费,在浏览器中处理。

  • 在浏览器中处理
  • 数据不离开你的设备
  • 免费 · 无需注册
点击解析检查当前文本。编辑输入会隐藏旧表格并停用导出 JSON,直到再次解析。 清除会移除输入、表格和状态,并停用导出 JSON。焦点在本工具内时,Ctrl 或 Command + L 执行相同操作。 将解析后的键下载为 env.json。至少有一条有效或警告条目时才能导出。重复键取最后一个值,注释行和错误行不导出。
粘贴 KEY=VALUE,或冒号后带空格的 KEY: value。带引号的值可以跨行;变量引用不会展开。解析遵循 dotenv 16.6.1 的规则。

解析后的键、值和备注将显示在这里。

表格和 env.json 都会保留明文值。共享屏幕或下载文件前,请检查其中的密钥。

阅读完整使用指南 .env 文件在线解析:可视化环境变量、检测语法错误
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。

示例

# 数据库配置
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 标为“值为空”,第二个 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 接受但写法少见的键显示警告,照常导出:

SITE_NAME: 示例商城
export API_BASE: https://api.example.cn/v1
CDN HOST=static.example.cn
feature.flag=on
PORT:8080
{
  "SITE_NAME": "示例商城",
  "API_BASE": "https://api.example.cn/v1",
  "feature.flag": "on"
}

状态行显示“有效 2 个,警告 1 个,错误 2 个。”。第 3 行键名中有空格,dotenv 的键名规则 [\w.-]+ 不允许,所以是错误;第 5 行冒号后没有空格。 Node.js 自带的解析器(—env-file、util.parseEnv())规则不同:Node.js 22.23.3 读这段文本时保留 CDN HOST 和 feature.flag,三行冒号写法全部忽略。

名为 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 和 shell 的 source 对引号、冒号、export 和 # 各有处理方式,请以实际使用的加载器为准。
  • 值以明文显示。表格不会遮盖密钥,共享屏幕时注意;需要分享文件时,先用 API Key 脱敏工具替换值。

FAQ

支持哪种 .env 语法?

dotenv 16.6.1(Node.js 的 dotenv 包)的解析规则:每行一个 KEY=VALUE,或冒号后带空格的 KEY: value,可带 export 前缀。键名可以使用字母、数字、_、. 和 -。以 # 开头的行是注释。未加引号的值后面的 # 开始行内注释,所以 PORT=5432 # default 得到 5432;引号内的 # 保留。带引号的值可以跨多行。

如何处理带引号的值?

值两侧的单引号、双引号、反引号会被去掉,引号内的空白保留。只有双引号值会把 \n 转成换行。没有闭合的引号保留在值里,备注列会标出。

什么情况会报错?

dotenv 会跳过的行显示为错误,也不会导出:既没有 = 也没有冒号(缺少 = 号)、键为空、键里有空格等 dotenv 不允许的字符(如 MY KEY=1,备注为键名不符合常见规则)、冒号后没有空格或冒号前有空格(如 PORT:8080)。空值、重复键,以及 dotenv 接受但不符合 [A-Za-z_][A-Za-z0-9_]* 的键(如 my.key、9KEY)显示警告,这些键照常导出。

数据会上传到服务器吗?

不会。所有解析均在浏览器中通过 JavaScript 完成,文本不会在访问之间保存。.env 文件里通常有密钥,所以本页也不加载 Google Analytics 和 AdSense。

导出的 JSON 格式是什么?

表格中所有没有报错的键组成的 JSON 对象,与 dotenv.parse() 的结果相同。注释行和报错行不包含在内。重复键取最后一个值,与 dotenv 一致;表格里每次出现都会标注警告。唯一的差别是名为 __proto__ 的键:本工具把它作为普通属性导出,dotenv.parse() 会丢掉它。导出 JSON 只在点击解析之后、并且至少有一个可导出的键时可用。