Skip to content
On this page

dotenv

简介

dotenv 是一个零依赖的模块,它能将环境变量从 .env 文件加载到 process.env 中。将项目的配置与代码分离是一种很好的实践。

安装

bash
npm install dotenv

基本使用

  1. 在项目根目录创建 .env 文件:
plaintext
DB_HOST=localhost
DB_USER=root
DB_PASS=123456
  1. 在项目入口文件中尽早加载:
javascript
require('dotenv').config()

console.log(process.env.DB_HOST) // 输出: localhost

高级配置

javascript
require('dotenv').config({
  path: '/custom/path/to/.env', // 自定义 .env 文件路径
  encoding: 'utf8', // 指定编码
  debug: process.env.DEBUG, // 开启调试模式
})

最佳实践

  1. 永远不要提交 .env 文件到版本控制

    • .env 添加到 .gitignore
    • 提供 .env.example 作为模板
  2. 验证必需的环境变量

javascript
const required = ['NODE_ENV', 'API_KEY']

required.forEach((param) => {
  if (!process.env[param]) {
    throw new Error(`Environment parameter ${param} is missing`)
  }
})
  1. 使用类型安全的环境变量
javascript
const getEnvVar = (key) => {
  if (process.env[key] === undefined) {
    throw new Error(`${key} is undefined`)
  }
  return process.env[key]
}

const config = {
  nodeEnv: getEnvVar('NODE_ENV'),
  port: parseInt(getEnvVar('PORT'), 10),
  apiKey: getEnvVar('API_KEY'),
}

注意事项

  1. 环境变量始终是字符串
  2. 空值会被视为空字符串
  3. .env 文件应该在生产环境外部配置
  4. 多行值需要使用引号

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命