You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中如何加载不同.env文件并存储到独立对象中

如何将不同.env文件的内容存储到独立变量中(不写入process.env)

要实现将不同.env文件的内容存储到独立变量,无需使用会自动修改process.env的dotenv.config(),而是通过dotenv.parse()配合文件读取直接解析内容为独立对象:

const dotenv = require('dotenv');
const fs = require('fs');

// 读取并解析生产环境.env文件
const prodEnvContent = fs.readFileSync('.env.production', 'utf8');
const productionEnv = dotenv.parse(prodEnvContent);

// 读取并解析开发环境.env文件
const devEnvContent = fs.readFileSync('.env.development', 'utf8');
const developmentEnv = dotenv.parse(devEnvContent);

// 直接使用独立变量中的环境变量
console.log(productionEnv.VARIABLE_FROM_ENV_PRODUCTION);
console.log(developmentEnv.VARIABLE_FROM_ENV_DEVELOPMENT);

核心要点:

  • fs.readFileSync()用于同步读取.env文件内容(异步场景可改用fs.readFile()搭配Promise)
  • dotenv.parse()会将读取到的.env文本解析为键值对对象,完全不会改动process.env
  • 每个.env文件的内容都存放在独立变量中,互相隔离,避免变量冲突

如果需要处理文件读取异常,可以封装成工具函数:

const dotenv = require('dotenv');
const fs = require('fs');

function loadEnvFile(path) {
  try {
    const content = fs.readFileSync(path, 'utf8');
    return dotenv.parse(content);
  } catch (err) {
    console.error(`加载.env文件失败:${path}`, err);
    throw err;
  }
}

const productionEnv = loadEnvFile('.env.production');
const developmentEnv = loadEnvFile('.env.development');

内容的提问来源于stack exchange,提问作者Alexander Mills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:57:20