vite.config.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig, loadEnv } from 'vite'
  3. import { createVitePlugins } from './vitePlugins.config'
  4. import { createProxy } from './viteProxy.config'
  5. import type { ImportMetaEnv } from './env'
  6. // https://vite.dev/config/
  7. export default defineConfig(({ mode }) => {
  8. const rawEnv = loadEnv(mode, process.cwd())
  9. console.log({ mode, rawEnv })
  10. const env: ImportMetaEnv = {
  11. VITE_GLOB_APP_TITLE: rawEnv.VITE_GLOB_APP_TITLE || 'FranklinWH Toolbox',
  12. VITE_GLOB_APP_NAME: rawEnv.VITE_GLOB_APP_NAME || 'FWH Toolbox',
  13. VITE_USER_NODE_ENV: rawEnv.VITE_USER_NODE_ENV || 'development',
  14. VITE_PUBLIC_PATH: rawEnv.VITE_PUBLIC_PATH || '/',
  15. VITE_ROUTER_MODE: rawEnv.VITE_ROUTER_MODE || 'hash',
  16. VITE_API_URL: rawEnv.VITE_API_URL || '/fwh-toolbox/api',
  17. // 仅development环境生效
  18. VITE_PORT: rawEnv.VITE_PORT,
  19. VITE_OPEN: rawEnv.VITE_OPEN,
  20. VITE_DEVTOOLS: rawEnv.VITE_DEVTOOLS,
  21. VITE_CODEINSPECTOR: rawEnv.VITE_CODEINSPECTOR,
  22. // 仅production打包
  23. VITE_REPORT: rawEnv.VITE_REPORT,
  24. VITE_DROP_CONSOLE: rawEnv.VITE_DROP_CONSOLE,
  25. VITE_BUILD_COMPRESS: rawEnv.VITE_BUILD_COMPRESS,
  26. VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: rawEnv.VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,
  27. }
  28. return {
  29. base: env.VITE_PUBLIC_PATH,
  30. plugins: createVitePlugins(env),
  31. resolve: {
  32. alias: {
  33. '@': fileURLToPath(new URL('./src', import.meta.url)),
  34. },
  35. },
  36. server: {
  37. host: '0.0.0.0',
  38. port: env.VITE_PORT ? Number(env.VITE_PORT) : undefined,
  39. open: env.VITE_OPEN === 'true',
  40. cors: true,
  41. // Load proxy configuration from .env.development
  42. proxy: createProxy(env.VITE_PUBLIC_PATH, true),
  43. allowedHosts: true,
  44. },
  45. }
  46. })