dotenv
dotenv, 环境变量工具, 从 .env 文件加载环境变量
将敏感配置(API密钥、数据库密码)与代码物理隔离,基于十二要素应用方法论,通过零依赖模块把 .env 文件中的键值对注入 Node.js 的 process.env,避免密钥随代码泄露。
| 收费 | 免费开源 |
|---|---|
| 平台 | Node.js |
| 中文 | 中文文档(dotenv.nodejs.cn) |
| 用途 | 从 .env 文件加载环境变量到 process.env |
在项目根目录创建 .env 文件,写入键值对(如 S3_BUCKET=YOURS3BUCKET),然后在应用入口尽早调用 require('dotenv').config()。之后 process.env.S3_BUCKET 即可读取对应值。支持 ES6 语法 import dotenv/config。
针对不同环境(开发、测试、生产)可加载不同 .env 文件;v16.1.x 起内置 AES-256-GCM 解密函数,允许将加密后的 .env 文件安全提交到生产仓库。
遵循十二要素应用第三条规定:配置与代码严格分离。文件名不强制以 .env 开头,但点前缀使文件在操作系统中隐藏(如 .ssh、.github)。核心解析器仅一个文件,使用正则 LINE 匹配键值对,处理引号、转义、注释等边界情况。
Q1:dotenv 是否必须将 .env 文件放在项目根目录?
A1:不是。可以通过 config() 的 path 参数指定任意路径,例如 require('dotenv').config({ path: './config/.env.dev' })。文件名也不强制以 .env 开头,任何文件名均可正常工作。
Q2:dotenv 如何处理 .env 文件中的多行私钥?
A2:支持两种方式:直接书写换行(v15.0.0+),或使用双引号包裹并用 n 表示换行。例如 PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----nKh9NV...n-----END RSA PRIVATE KEY-----"
Q3:能否将 .env 文件提交到 Git 仓库?
A3:官方建议不提交明文 .env 文件,应在 .gitignore 中添加 /.env。如果需要提交,可使用 v16.1.x 后的加密功能:用 AES-256-GCM 加密 .env 内容,仅提交加密版本,在部署时解密加载。
更多同类工具与网站,可在前端库分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论