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

Node.js启动时将.env内容写入config JSON文件的实现方法

实现Node.js启动时将.env数据同步到config JSON文件

步骤1:安装依赖

首先安装dotenv包来解析.env文件:

npm install dotenv --save

步骤2:编写同步脚本

在项目根目录创建sync-env-to-config.js脚本,负责读取.env、映射结构并写入config文件:

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

// 加载项目根目录的.env文件
dotenv.config({ path: path.resolve(__dirname, '.env') });

// 按照你的config JSON结构,映射.env变量
const config = {
  server: {
    port: parseInt(process.env.SERVER_PORT, 10) || 5000 // 转换为数字并设置默认值
  },
  db: {
    url: process.env.DB_URL || 'mongodb://localhost:27017',
    name: process.env.DB_NAME || 'test',
    user: process.env.DB_USER || 'user',
    pass: process.env.DB_PASS || ''
  }
};

// 定位npm config包默认的配置文件路径(通常为config/default.json)
const configFile = path.resolve(__dirname, 'config', 'default.json');

// 确保config目录存在,避免写入失败
const configDir = path.dirname(configFile);
if (!fs.existsSync(configDir)) {
  fs.mkdirSync(configDir, { recursive: true });
}

// 写入格式化后的JSON文件
fs.writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');

console.log('✅ .env数据已同步到config配置文件');

步骤3:修改启动脚本

在package.json里调整启动命令,让Node.js启动前先执行同步脚本:

{
  "scripts": {
    "start": "node sync-env-to-config.js && node your-app-entry.js"
  }
}

将your-app-entry.js替换成你实际的项目入口文件(如index.js)。

注意事项

  • 确保.env文件中的变量名和脚本里的映射完全匹配,比如SERVER_PORT对应server.port
  • 给变量设置默认值可以避免.env缺失时应用启动失败
  • 如果你的config文件路径不是config/default.json,直接修改脚本里的configFile路径即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:55:20