import { config } from 'dotenv' import path from 'path' // 加载环境变量 config({ path: path.resolve(process.cwd(), '.env') }) console.log("[NODE_ENV]:", process.env.NODE_ENV); // 基础配置 const baseConfig = { NODE_ENV: process.env.NODE_ENV || 'development', server: { port: process.env.PORT || 9000, host: process.env.HOST || 'localhost', backlog: process.env.BACKLOG || 511 }, logger: { level: process.env.LOG_LEVEL || 'trace', filePath: process.env.LOG_FILE || '../logs/app.log', console: false, }, pluginOptions: { name: process.env.PLUGIN_NAME || 'default', prefix: process.env.API_PREFIX || '/api' } } // 环境特定配置 const envConfig = { production: { server: { host: '0.0.0.0', }, logger: { level: 'warn', } }, development: { logger: { level: 'trace', console: true, } } } // 使用深度合并代替展开操作符 function deepMerge(target, source) { for (const key of Object.keys(source)) { if (source[key] instanceof Object && key in target) { Object.assign(source[key], deepMerge(target[key], source[key])) } } return Object.assign({}, target, source) } export default deepMerge( baseConfig, envConfig[process.env.NODE_ENV] || envConfig.development )