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