import { fileURLToPath, URL } from 'node:url' import { defineConfig, loadEnv } from 'vite' import { createVitePlugins } from './vitePlugins.config' import { createProxy } from './viteProxy.config' import type { ImportMetaEnv } from './env' // https://vite.dev/config/ export default defineConfig(({ mode }) => { const rawEnv = loadEnv(mode, process.cwd()) console.log({ mode, rawEnv }) const env: ImportMetaEnv = { VITE_GLOB_APP_TITLE: rawEnv.VITE_GLOB_APP_TITLE || 'FranklinWH Toolbox', VITE_GLOB_APP_NAME: rawEnv.VITE_GLOB_APP_NAME || 'FWH Toolbox', VITE_USER_NODE_ENV: rawEnv.VITE_USER_NODE_ENV || 'development', VITE_PUBLIC_PATH: rawEnv.VITE_PUBLIC_PATH || '/', VITE_ROUTER_MODE: rawEnv.VITE_ROUTER_MODE || 'hash', VITE_API_URL: rawEnv.VITE_API_URL || '/fwh-toolbox/api', // 仅development环境生效 VITE_PORT: rawEnv.VITE_PORT, VITE_OPEN: rawEnv.VITE_OPEN, VITE_DEVTOOLS: rawEnv.VITE_DEVTOOLS, VITE_CODEINSPECTOR: rawEnv.VITE_CODEINSPECTOR, // 仅production打包 VITE_REPORT: rawEnv.VITE_REPORT, VITE_DROP_CONSOLE: rawEnv.VITE_DROP_CONSOLE, VITE_BUILD_COMPRESS: rawEnv.VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: rawEnv.VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, } return { base: env.VITE_PUBLIC_PATH, plugins: createVitePlugins(env), resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, server: { host: '0.0.0.0', port: env.VITE_PORT ? Number(env.VITE_PORT) : undefined, open: env.VITE_OPEN === 'true', cors: true, // Load proxy configuration from .env.development proxy: createProxy(env.VITE_PUBLIC_PATH, true), allowedHosts: true, }, build: { sourcemap: true, // ✅ 生成 source map }, } })