Glyph WidgetsGlyph Widgets
关于联系博客隐私条款在Ko-fi上支持

© 2026 Glyph Widgets. 保留所有权利。

·

100% 客户端处理

返回博客

.env文件解析器|语法验证与格式转换工具

.env 文件解析器:验证语法、检测重复项、按字母排序、转换为 JSON、YAML 或 Docker 格式。完全在浏览器中运行,无需上传数据。

Glyph Widgets
2026年2月27日
13 min read
env file parserdotenv validatorenv file formatterenv to json converterenv to yaml converter

什么是 .env 文件解析器?

.env File Parser & Formatter 是一款基于浏览器的工具,用于处理环境变量文件。它解析 KEY=VALUE 内容以检测语法错误、识别重复键并显示文件统计信息;一键将变量转换为 JSON、YAML、Docker --env-file 或 docker-compose.yml 格式;当同一个键在两个文件中以不同值出现时,还可通过交互式冲突解决来合并两个 .env 文件。

在部署前审查环境文件、以不同格式与团队成员共享配置、将基础 .env 与特定环境的覆盖合并,或仅需将长文件按字母顺序排序以便扫描时,都可以使用此工具。所有操作均在浏览器中运行——您的敏感信息永远不会接触服务器。

主要功能

  • 解析支持带引号值和多行的 KEY=VALUE 对 — 单引号和双引号括起的值会自动去除引号;未加引号的值后面的行内注释会被删除。
  • 通过警告徽章检测重复键 — 验证面板中,每个出现多次的键都会用黄色警告图标标记。
  • 验证语法:缺少 =、空键、无效字符 — 解析器强制要求键必须以字母或下划线开头,且只能包含字母数字字符和下划线 (/^[a-zA-Z_][a-zA-Z0-9_]*$/)。每个违规都会报告具体的行号。
  • 按字母顺序排列变量 — 排序按钮以升序词典顺序重写输入文本框中的变量,替换原始内容。
  • 转换为 JSON 格式 — 生成包含所有变量键和值的格式化 JSON 对象。
  • 转换为 YAML 格式 — 当值包含 YAML 特殊字符 (:, #, {, }, [, ], ,, &, *, !, |, >, ', ", %, @, ` `)、类布尔字符串 (true, false, yes, no, null`)、纯数字字符串或空值时,自动用双引号括起值。
  • 转换为 Docker --env-file 格式 — 输出不带引号的裸 KEY=VALUE 对,符合 docker run --env-file 的要求。
  • 转换为 docker-compose.yml 环境块 — 将输出包装在带有列表项 (- KEY=VALUE) 的 environment: YAML 块中,可直接粘贴到 docker-compose.yml 服务定义中。
  • 合并两个 .env 文件并检测和解决冲突 — 并排文本框输入;冲突会列出两个值,以便您在应用前选择保留哪一个。
  • 显示统计信息:变量数、注释、空行 — 解析后显示四个计数器:Variables、Comments、Empty Lines 和 Duplicates。
  • 支持文件上传 — 直接从磁盘上传 .env、.env.* 或 .txt 文件。
  • 100% 客户端处理 — 您的敏感信息永远不会离开您的浏览器。

如何使用 .env 文件解析器

第 1 步:输入或上传 .env 内容

使用工具顶部的 Parse & Validate 和 Merge 标签页在两种模式之间切换。

在 解析模式 中,将 .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 步:查看统计信息和验证面板

输入或粘贴内容后,编辑器下方会出现两个面板:

Statistics 在网格中显示四个计数器:

  • Variables — 有效 KEY=VALUE 条目的数量
  • Comments — 以 # 开头的行
  • Empty Lines — 空白行
  • Duplicates — 出现多次的键(非零时计数器变为黄色)

Validation 列出发现的每个问题:

  • 重复键显示黄色三角形图标:"Duplicate key: APP_PORT"
  • 语法错误显示红色 X 图标,引用确切的行:"Line 14: Missing '=' sign"
  • 如果没有问题,绿色对勾确认:"No issues found"

第 3 步:选择输出格式

右侧面板的格式选择器提供五个选项:

按钮标签输出格式主要用途
.envKEY=VALUE(重新加引号)清洁、规范化的 .env
JSON格式化的 JSON 对象传递给 JSON 应用的配置
YAMLKEY: value(自动加引号)Ansible 变量、Helm 值、应用配置文件
Docker --env-file裸 KEY=VALUE,无引号docker run --env-file <文件>
docker-compose.ymlenvironment: 列表块粘贴到服务定义中

点击任意按钮即可即时切换输出。所有格式都排除注释行和空行——仅包含有效的变量条目。

.env 输出格式还会规范化引号:包含空格、# 或 " 的值会自动用双引号括起,内部双引号会被转义。

第 4 步:排序和复制

点击 Sort 以按字母顺序重写输入文本框中的变量。这会就地修改输入,因此排序后的内容将成为解析和输出的新来源。

点击输出面板标题中的 Copy 将格式化结果复制到剪贴板。

第 5 步:合并两个 .env 文件(可选)

切换到 Merge 标签页。在 File A 文本框中粘贴或上传一个 .env 文件,在 File B 中粘贴另一个,然后点击 Merge Files。

  • 如果两个文件没有冲突的键(相同键具有不同值),合并立即完成,结果出现在解析标签页的输入中供进一步编辑。
  • 如果存在冲突,Conflict Resolution 面板会列出每个冲突键,将两个值显示为按钮。点击要保留的值(A 或 B)的按钮,然后点击 Apply Merge 根据您的选择合并文件。

实际示例

部署前审查生产环境 .env

粘贴生产环境文件并查看验证面板。即使是单个 "Missing '=' sign" 错误或重复键警告也可能表明存在复制粘贴错误,这会导致运行时配置失败。Statistics 计数器提供快速计数,可与您的预期变量列表进行交叉参考。

为 Docker 转换

您有一个在 Node.js 中与 dotenv 配合使用的 .env 文件,但需要将其传递给 Docker 容器。选择 Docker --env-file 用于 docker run --env-file .env,或选择 docker-compose.yml 获取现成的 environment: 块:

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。

提示与最佳实践

上传文件而不是粘贴长配置。 文件上传按钮接受 .env、.env.* 和 .txt 格式。这样可以避免剪贴板大小限制和从终端复制时可能发生的意外尾部空格损坏。

差异比较前先排序。 如果您在手动比较两个环境文件,请先将两个文件都排序。排序按钮规范化顺序,以便您的差异比较工具能找到有意义的变化,而不是不同变量顺序带来的噪音。

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 这样的 shell 导出语句时最常见的错误。粘贴前删除 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 输出有意外的引号 — 纯数字值或与布尔字面量 (true, false, yes, no, null) 匹配的值会被加引号以保留其字符串类型。这是 YAML 的预期正确行为。

隐私与安全

.env File Parser 完全在您的浏览器中运行,没有服务器端处理。您的环境变量——包括 API 密钥、数据库凭据和秘密令牌——从不通过网络传输。解析、验证、格式转换和合并逻辑都是在本地执行的 JavaScript 函数。该工具在首次页面加载后可离线使用。第三方分析脚本无法访问文本框内容。

常见问题解答

.env File Parser 是免费的吗? 是的,完全免费,无需账户。

粘贴真实的 API 密钥和敏感信息安全吗? 是的。所有处理都在您的浏览器中使用本地 JavaScript 进行。没有任何内容会发送到任何服务器。您的敏感信息保留在您的机器上。

可以离线使用吗? 是的。页面加载后,解析和转换在没有互联网连接的情况下也能工作。

支持多行值吗? 解析器处理单行带引号的值。跨越多行的真正多行值(使用反斜杠续行或 heredoc 样式语法)目前不受支持。解析前请将多行内容分割成单个带引号的行。

为什么我的带引号值在输出中引号被删除了? unquoteValue 函数会删除括起整个值的匹配的单引号或双引号。DATABASE_URL="postgres://..." 在内部变为 postgres://...,然后在输出格式中根据需要重新加引号。这是格式转换的正确行为。

输出中注释行会怎样? 注释(以 # 开头的行)从所有输出格式中排除。仅包含有效的变量条目。注释在 Statistics 面板中计数,但不写入输出。

可以合并两个以上的文件吗? 该工具一次支持合并恰好两个文件。要合并三个或更多文件,先合并 A+B,将结果复制到解析模式,然后将其用作与 File C 进行第二次合并的 File A。

排序操作会保留注释行吗? 不会。排序按钮只使用解析出的有效变量来重建已排序的输入,丢弃注释行和空行。当您需要一个清洁、规范化的文件时使用排序。

Docker --env-file 格式是什么? docker run --env-file 期望不带 shell 引号的裸 KEY=VALUE 行。Docker 输出格式即使对含有空格的值也省略引号,这对 Docker 格式是正确的,但在 shell 脚本中会失败。如果需要 shell 安全引号,请使用 .env 格式。

不合并两个文件能检测到哪些变量不同吗? 切换到 Merge 模式并点击 Merge Files。冲突列表显示 File A 和 File B 值不同的每个键,可作为不同变量的实用差异比较。

相关工具

  • Config Generator — 为各种框架和环境生成结构化配置文件。
  • Docker Converter — 在 Docker 相关配置格式之间转换。
  • YAML to TOML — 在 YAML 和 TOML 配置文件格式之间转换。

立即试用 .env File Parser: .env File Parser & Formatter

最后更新:2026年2月27日

继续阅读

更多文章