环境文件解析器

环境文件(.env)以键值对形式存储配置,将密钥和设置与代码分离。由十二因素应用方法论推广,广泛用于 Node.js、Python、Ruby 和其他生态系统。此工具解析 .env 文件并以结构化视图显示变量。

规范

常见用例

  • 检查应用程序环境配置
  • 在部署前验证 .env 文件语法
  • 比较不同环境(开发、测试、生产)之间的环境文件
  • 将环境变量转换为 JSON 用于文档
  • 在不暴露到日志的情况下审查配置

功能

  • 解析各种格式的 KEY=value 键值对
  • 处理带引号的值(单引号和双引号)
  • 跳过注释(#)和空行
  • 显示/隐藏密钥切换(屏蔽匹配 password、token、api、secret 等的键)
  • 转换为 JSON 和 YAML 供编程使用
  • 注释计数显示

示例

应用程序配置

试试看 →

一个包含数据库和 API 设置的典型 .env 文件。

# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10

# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'

提示

  • 永远不要将 .env 文件提交到版本控制。改用 .env.example。
  • 带引号的值保留前导/尾随空格。
  • 某些实现支持变量展开:${VAR}。
  • 每个环境使用单独的 .env 文件:.env.development、.env.production。

理解 环境文件解析器

环境变量文件(.env)以简单的 KEY=VALUE 键值对形式存储应用程序配置,每行一个。该格式由十二因素应用方法论推广,该方法论主张将配置与代码严格分离。应用程序不是将数据库 URL、API 密钥和功能开关硬编码,而是从环境变量中读取它们,.env 文件提供了一种在开发期间设置这些变量的便捷方式。

dotenv 库最初是为 Ruby 开发的,后来移植到 Node.js、Python、PHP 及几乎所有生态系统,它读取 .env 文件并将值注入到进程环境中。该格式支持不带引号的值(DATABASE_HOST=localhost)、带转义序列的双引号值(MESSAGE="Hello\\nWorld")以及按字面处理的单引号值(REGEX='^\\d+$')。注释以 # 开头,空行被忽略。

关键的做法是永远不要将 .env 文件提交到版本控制,因为它们通常包含密钥。相反,项目应包含一个 .env.example 文件,列出所有必需的变量并使用占位符值。CI/CD 系统和托管平台提供了自己的安全设置环境变量的机制。

变量展开(使用 \${VAR} 语法引用其他变量)由某些 dotenv 实现支持。Docker Compose 原生支持它。依赖展开时,请验证你的特定 dotenv 实现是否支持它,因为行为因语言而异。

.env 文件通常包含数据库密码、API 密钥和加密密钥等密钥。将这些提交到 git 会使任何有仓库访问权限的人都能看到它们,即使删除后它们也会留在 git 历史中。将 .env 添加到 .gitignore,并使用带占位符值的 .env.example 来记录所需变量。双引号值会解释转义序列(\\n 变成换行符),而单引号值则按原始字面量处理,不做任何转义处理。不带引号的值会去除尾随空格,并在第一个 # 字符处停止,该字符被视为行内注释。

管理多个环境通常涉及单独的 .env 文件:.env 用于默认值、.env.local 用于特定机器的覆盖(不提交),以及 .env.development 或 .env.production 用于特定环境的值。Next.js、Vite 和 Create React App 等框架按特定优先级顺序加载这些文件。对于 Docker,Compose 支持 env_file 从文件加载变量,以及 environment 键直接设置变量。项目根目录中的 Compose .env 文件用于 docker-compose.yml 本身的变量替换。构建时的 ARG 变量与运行时的 ENV 变量不同,不应包含密钥。

← 返回所有工具