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
相关产品推荐
相关产品推荐

