|
@@ -1,41 +1,32 @@
|
|
|
-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 warpperEnv = (envConf: Recordable): ViteEnv => {
|
|
|
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");
|
|
|
+
|
|
|
+ for (const envName of Object.keys(envConf)) {
|
|
|
+ let realName = envConf[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") {
|
|
|
+ if (envName === "VITE_PROXY" && realName) {
|
|
|
try {
|
|
|
- realName = JSON.parse(realName);
|
|
|
- // eslint-disable-next-line no-empty
|
|
|
- } catch (error) {}
|
|
|
+ realName = JSON.parse(realName.replace(/'/g, '"'));
|
|
|
+ } catch (error) {
|
|
|
+ realName = "";
|
|
|
+ }
|
|
|
}
|
|
|
ret[envName] = realName;
|
|
|
- process.env[envName] = realName;
|
|
|
+ if (typeof realName === "string") {
|
|
|
+ process.env[envName] = realName;
|
|
|
+ } else if (typeof realName === "object") {
|
|
|
+ process.env[envName] = JSON.stringify(realName);
|
|
|
+ }
|
|
|
}
|
|
|
return ret;
|
|
|
-}
|
|
|
+};
|
|
|
+const loadEnv = (): ViteEnv => {
|
|
|
+ return import.meta.env;
|
|
|
+};
|
|
|
+
|
|
|
+export { loadEnv, warpperEnv };
|