1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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;
- }
|