import path from 'path'; import fs from 'fs'; import dotenv from 'dotenv'; interface EnvConfig { [key: string]: string; } //读取env 文件配置 const loadEnv = () => { const envRoot = path.resolve(process.cwd()); const mode = getMode(); // 加载默认环境变量 const envFilePath = path.resolve(envRoot, `./env`); if (fs.existsSync(envFilePath)) { dotenv.config({ path: envFilePath }); } //加载特定环境变量 const envModeFilePath = path.resolve(envRoot, `./env/${mode}`); if (fs.existsSync(envModeFilePath)) { dotenv.config({ path: envModeFilePath }); } }; //获取指令参数 const getMode = () => { const args = process.argv .find((item) => item.startsWith('--mode')) ?.split('=')[1]; if (args) return args; const mode = process.env.NODE_ENV; return mode || 'development'; }; const isDev = () => { return getMode() === 'development'; }; const isProd = () => { return getMode() === 'production'; }; export { loadEnv, getMode, isDev, isProd };