mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 00:18:51 +08:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import * as dotenv from "dotenv";
|
|
|
|
export interface ViteEnv {
|
|
VITE_PORT: number;
|
|
VITE_OPEN: boolean;
|
|
VITE_USE_MOCK: boolean;
|
|
VITE_PUBLIC_PATH: string;
|
|
VITE_PROXY: [string, string][];
|
|
}
|
|
|
|
export function loadEnv(): ViteEnv {
|
|
const env = process.env.NODE_ENV;
|
|
const ret: any = {};
|
|
// eslint-disable-next-line no-sparse-arrays
|
|
const envList = [`.env.${env}.local`, `.env.${env}`, ".env.local", ".env", ,];
|
|
envList.forEach(e => {
|
|
dotenv.config({
|
|
path: e
|
|
});
|
|
});
|
|
for (const envName of Object.keys(process.env)) {
|
|
let realName = (process.env as any)[envName].replace(/\\n/g, "\n");
|
|
realName =
|
|
realName === "true" ? true : realName === "false" ? false : realName;
|
|
if (envName === "VITE_PORT") {
|
|
realName = Number(realName);
|
|
}
|
|
if (envName === "VITE_OPEN") {
|
|
realName = Boolean(realName);
|
|
}
|
|
if (envName === "VITE_PROXY") {
|
|
try {
|
|
realName = JSON.parse(realName);
|
|
// eslint-disable-next-line no-empty
|
|
} catch (error) {}
|
|
}
|
|
ret[envName] = realName;
|
|
process.env[envName] = realName;
|
|
}
|
|
return ret;
|
|
}
|