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

如何在运行Node.js应用时指定对应环境的配置文件?

实现Node.js多环境配置动态加载

方法一:通过npm脚本传参+动态加载配置

  1. 配置npm启动脚本
    在项目根目录的package.json里添加对应环境的运行脚本:
{
  "scripts": {
    "dev": "NODE_ENV=dev node app.js",
    "qe": "NODE_ENV=qe node app.js",
    // Windows环境需兼容语法,先安装cross-env:npm i cross-env --save-dev
    "dev:win": "cross-env NODE_ENV=dev node app.js",
    "qe:win": "cross-env NODE_ENV=qe node app.js"
  }
}
  1. 在应用入口动态加载配置
    在你的应用入口文件(比如app.js)中,根据环境变量加载对应配置:
// 读取环境标识,默认设为dev
const env = process.env.NODE_ENV || 'dev';
// 动态导入对应环境的配置文件
const config = require(`./config-${env}.js`);

// 验证加载结果示例
console.log(`当前加载${env}环境配置,数据库地址:`, config.db.host);

执行npm run dev会加载config-dev.js,npm run qe则加载config-qe.js。

方法二:结合dotenv管理环境标识

如果习惯用.env文件管理变量,可按以下步骤操作:

  1. 安装dotenv依赖
npm i dotenv --save
  1. 创建.env文件
    在项目根目录新建.env,指定当前环境:
NODE_ENV=dev
  1. 修改应用入口逻辑
// 先加载dotenv解析环境变量
require('dotenv').config();
const env = process.env.NODE_ENV || 'dev';
const config = require(`./config-${env}.js`);

也可以在npm脚本里直接覆盖.env的配置:

{
  "scripts": {
    "qe": "NODE_ENV=qe node -r dotenv/config app.js"
  }
}

方法三:生成固定配置入口文件(可选)

如果需要生成project.js来指定环境,可写个简单脚本自动生成:

  1. 创建generate-config.js脚本
const fs = require('fs');
const env = process.argv[2] || 'dev';

// 生成指向对应环境配置的文件内容
const content = `module.exports = require('./config-${env}.js');`;

// 写入project.js
fs.writeFileSync('./project.js', content);
console.log(`已生成project.js,指向${env}环境配置`);
  1. 配置npm脚本
{
  "scripts": {
    "config:dev": "node generate-config.js dev",
    "config:qe": "node generate-config.js qe",
    "dev": "npm run config:dev && node app.js",
    "qe": "npm run config:qe && node app.js"
  }
}
  1. 在应用中引入生成的文件
const config = require('./project.js');

执行npm run dev时会先生成指向config-dev.js的project.js,再启动应用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:07:52