| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | import fs from 'fs';import path from 'path';import dotenv from 'dotenv';export function isDevFn(mode: string): boolean {  return mode === 'development';}export function isProdFn(mode: string): boolean {  return mode === 'production';}/** * Whether to generate package preview */export function isReportMode(): boolean {  return process.env.REPORT === 'true';}export interface ViteEnv {  VITE_PORT: number;  VITE_USE_MOCK: boolean;  VITE_USE_PWA: boolean;  VITE_PUBLIC_PATH: string;  VITE_PROXY: [string, string][];  VITE_GLOB_APP_TITLE: string;  VITE_GLOB_APP_SHORT_NAME: string;  VITE_USE_CDN: boolean;  VITE_DROP_CONSOLE: boolean;  VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';  VITE_LEGACY: boolean;  VITE_USE_IMAGEMIN: boolean;}// Read all environment variable configuration files to process.envexport function wrapperEnv(envConf: Recordable): ViteEnv {  const ret: any = {};  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_PROXY') {      try {        realName = JSON.parse(realName);      } catch (error) {}    }    ret[envName] = realName;    process.env[envName] = realName;  }  return ret;}/** * Get the environment variables starting with the specified prefix * @param match prefix * @param confFiles ext */export function getEnvConfig(match = 'VITE_GLOB_', confFiles = ['.env', '.env.production']) {  let envConfig = {};  confFiles.forEach((item) => {    try {      const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)));      envConfig = { ...envConfig, ...env };    } catch (error) {}  });  Object.keys(envConfig).forEach((key) => {    const reg = new RegExp(`^(${match})`);    if (!reg.test(key)) {      Reflect.deleteProperty(envConfig, key);    }  });  return envConfig;}/** * Get user root directory * @param dir file path */export function getRootPath(...dir: string[]) {  return path.resolve(process.cwd(), ...dir);}
 |