fix: app config support `.env.local` (#5012)

pull/58/MERGE
Netfan 2024-12-04 21:41:22 +08:00 committed by GitHub
parent 17c7ce8f21
commit 935df713f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 9 deletions

View File

@ -1,5 +1,6 @@
import type { ApplicationPluginOptions } from '../typing'; import type { ApplicationPluginOptions } from '../typing';
import { existsSync } from 'node:fs';
import { join } from 'node:path'; import { join } from 'node:path';
import { fs } from '@vben/node-utils'; import { fs } from '@vben/node-utils';
@ -21,12 +22,11 @@ function getConfFiles() {
const script = process.env.npm_lifecycle_script as string; const script = process.env.npm_lifecycle_script as string;
const reg = /--mode ([\d_a-z]+)/; const reg = /--mode ([\d_a-z]+)/;
const result = reg.exec(script); const result = reg.exec(script);
let mode = 'production';
if (result) { if (result) {
const mode = result[1]; mode = result[1] as string;
return ['.env', `.env.${mode}`];
} }
return ['.env', '.env.production']; return ['.env', '.env.local', `.env.${mode}`, `.env.${mode}.local`];
} }
/** /**
@ -42,11 +42,14 @@ async function loadEnv<T = Record<string, string>>(
for (const confFile of confFiles) { for (const confFile of confFiles) {
try { try {
const envPath = await fs.readFile(join(process.cwd(), confFile), { const confFilePath = join(process.cwd(), confFile);
encoding: 'utf8', if (existsSync(confFilePath)) {
}); const envPath = await fs.readFile(confFilePath, {
const env = dotenv.parse(envPath); encoding: 'utf8',
envConfig = { ...envConfig, ...env }; });
const env = dotenv.parse(envPath);
envConfig = { ...envConfig, ...env };
}
} catch (error) { } catch (error) {
console.error(`Error while parsing ${confFile}`, error); console.error(`Error while parsing ${confFile}`, error);
} }