一个 Python 库,可从 .env 文件读取键值对并设置为环境变量,适用于 12-factor 应用开发。
motdotla/dotenv
一个零依赖的 Node.js 模块,可将 .env 文件中的环境变量加载到 process.env 中。
- Star
- 20,561
- Fork
- 983
- 未关闭 Issue
- 1
- 最近提交
- 9天前
这是什么?
dotenv 在 Node.js 应用中把 .env 文件里的键值对加载到 process.env,使配置和密钥可以独立于源代码存放,这一做法遵循 Twelve-Factor App 的理念。项目在根目录创建 .env 文件,尽早调用 config(),之后便可像平常一样通过 process.env 读取变量。
除核心加载功能外,包中还提供 parse() 用于将字符串或 Buffer 解析为对象,以及 populate() 用于把解析结果写入任意目标对象。它还附带 dotenv 命令行工具,其 run 子命令可在启动命令前注入变量,支持多个文件、覆盖和静默等选项,并提供更快的解析器选项。
该包没有任何依赖,可在 npm、yarn、pnpm、bun 和 deno 中使用。变量展开、命令替换和加密不属于本包功能,相关需求需配合同一团队的 dotenvx 工具。
核心功能
- 01通过一次 config() 调用,将 .env 中的键值对加载到 process.env。
- 02提供 parse(),可将字符串或 Buffer 转换为对象。
- 03提供 populate(),可将变量写入自定义目标对象。
- 04附带命令行工具,dotenv run 可在运行命令前注入变量。
- 05支持按顺序加载多个环境文件,并可选择覆盖已有变量。
- 06无依赖,并支持通过 dotenv/config 以 ESM 方式导入。
适用场景
- 在 Node.js 服务中将 API 密钥和数据库地址从源代码中移出。
- 为本地、测试和生产环境使用不同的 .env 文件。
- 借助 dotenv run 为测试命令或脚本注入环境变量。
- 在自定义工具中通过 parse() 函数解析 env 格式的文本。
快速上手
- 1
使用 npm 安装 dotenv
npm install dotenv --save - 2
在项目根目录创建 .env 文件并写入变量
- 3
在应用启动时加载 dotenv
- 4
使用 node 运行应用
node index.js
使用前须知
- 变量展开和命令替换需要单独的 dotenvx 工具。
- 除非值被引号包裹,否则 # 之后的内容会被视为注释,这是 v15 起的破坏性变更。
收录于专题
标签
常见问题
- dotenv 是什么?
- 一个零依赖的 Node.js 模块,可将 .env 文件中的环境变量加载到 process.env 中。 dotenv 在 Node.js 应用中把 .env 文件里的键值对加载到 process.env,使配置和密钥可以独立于源代码存放,这一做法遵循 Twelve-Factor App 的理念。项目在根目录创建 .env 文件,尽早调用 config(),之后便可像平常一样通过 process.env 读取变量。
- dotenv 可以免费使用吗?用的什么许可证?
- dotenv 以 BSD-2-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- dotenv 还在维护吗?
- 活跃维护中。dotenv 最近一次提交是在 2026年10月29日。
- dotenv 适合用来做什么?
- 在 Node.js 服务中将 API 密钥和数据库地址从源代码中移出。 为本地、测试和生产环境使用不同的 .env 文件。 借助 dotenv run 为测试命令或脚本注入环境变量。 在自定义工具中通过 parse() 函数解析 env 格式的文本。
- dotenv 怎么安装和运行?
- 使用 npm 安装 dotenv: npm install dotenv --save 在项目根目录创建 .env 文件并写入变量 在应用启动时加载 dotenv 使用 node 运行应用: node index.js
- 在哪里获取 dotenv?
- 源代码和安装说明在 GitHub 上:https://github.com/motdotla/dotenv
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源的密钥与环境变量管理工具,提供网页面板、命令行工具,并可同步到 GitHub。
一个零依赖的 Go 库,通过结构体标签把环境变量解析为类型化的结构体。
一个用 Rust 编写的命令行工具,通过一个 mise.toml 文件管理项目工具、环境变量和任务。
一条命令检测已发布应用的构建产物有多容易被 AI 逆向工具读取,并自动修复可安全处理的问题。
自包含、可定制的 tmux 配置,带 Powerline 风格状态栏、鼠标模式、剪贴板集成和 TPM 插件支持。