.env 文件解析器
文件
一个在浏览器中运行的健壮 `.env` 文件解析器,处理所有真实世界的细节:单引号 vs 双引号(转义序列仅在双引号内解析)、用于 RSA 私钥等的多行值、值后的 `# 行内注释`、`export FOO=bar` 前缀、空值。解析后,可按你的下一个环境所需格式导出 — 测试用 JSON、Kubernetes/Helm 用 YAML、shell 脚本用 `export` 行、Dockerfile 用 `ENV` 指令、Netlify 环境上下文用 TOML 块。
—
.env 文件内容
解析条目 (10 条)
| 键 | 值 | 行内注释 |
|---|---|---|
| DATABASE_URL | postgres://user:pass@localhost:5432/mydb | |
| DB_POOL_SIZE | 10 | |
| APP_NAME | My App | |
| APP_VERSION | 1.0.0 | |
| APP_DEBUG | true | |
| OAUTH_PRIVATE_KEY | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAxYz... -----END RSA PRIVATE KEY----- | |
| ROOT_DIR | /opt/app | |
| LOG_DIR | ${ROOT_DIR}/logs | |
| EMPTY | ∅ | |
| PORT | 3000 | default port |
导出格式:
输出
{
"DATABASE_URL": "postgres://user:pass@localhost:5432/mydb",
"DB_POOL_SIZE": "10",
"APP_NAME": "My App",
"APP_VERSION": "1.0.0",
"APP_DEBUG": "true",
"OAUTH_PRIVATE_KEY": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAxYz...\n-----END RSA PRIVATE KEY-----",
"ROOT_DIR": "/opt/app",
"LOG_DIR": "${ROOT_DIR}/logs",
"EMPTY": "",
"PORT": "3000"
}变量展开(${VAR})按字面保留 — 不解析。如需,请在运行时添加展开器。
使用方法
- 粘贴你的 `.env` 文件(或加载示例查看所有支持的语法)。
- 查看解析出的键/值/注释表。
- 选择导出格式并复制。多行值会保留(YAML 用 `|`,Docker 用 JSON 转义字符串)。
常见问题
- 单引号和双引号的区别?
- 双引号内,`\n`、`\t`、`\"` 等转义序列会被解析。单引号内为字面值 — 因此 `FOO='line1\nline2'` 保留反斜杠-n。这与 npm 的 `dotenv`、Python 的 `python-dotenv` 标准行为一致。
- 会展开 `${VAR}` 引用吗?
- 不会 — 变量展开取决于具体的 dotenv 实现,我们希望解析输出忠实表示文件内容。如需展开,导入后使用 `dotenv-expand` 等工具。
- 数据会被发送到哪里吗?
- 不会。解析完全在浏览器内进行。`.env` 内容不会离开设备。