Repolode
motdotla

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. 1

    使用 npm 安装 dotenv

    npm install dotenv --save
  2. 2

    在项目根目录创建 .env 文件并写入变量

  3. 3

    在应用启动时加载 dotenv

  4. 4

    使用 node 运行应用

    node index.js

使用前须知

  • 变量展开和命令替换需要单独的 dotenvx 工具。
  • 除非值被引号包裹,否则 # 之后的内容会被视为注释,这是 v15 起的破坏性变更。

收录于专题

标签

#nodejs#environment-variables#configuration#secrets#twelve-factor#javascript#cli#configuration-file#dotenv#env

常见问题

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 数据每日更新。

相关项目