env.d.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. *后台服务的环境类型
  3. * - dev: 后台开发环境
  4. * - test: 后台测试环境
  5. * - prod: 后台生产环境
  6. */
  7. type ServiceEnvType = 'dev' | 'test' | 'prod';
  8. /** 后台服务的环境配置 */
  9. interface ServiceEnvConfig {
  10. /** 请求地址 */
  11. url: string;
  12. }
  13. interface ServiceEnvConfigWithProxyPattern extends ServiceEnvConfig {
  14. /**
  15. * 匹配路径的正则字符串
  16. * - 用于拦截地址转发代理(任意以 /开头 + 字符串, 单个/不起作用)
  17. * - 和后端请求地址的前缀无关
  18. * - 有多个后端请求实例时,需要创建不同的值
  19. */
  20. proxyPattern: '/proxy-pattern';
  21. }
  22. interface ImportMetaEnv {
  23. /** 项目基本地址 */
  24. readonly VITE_BASE_URL: string;
  25. /** 项目名称 */
  26. readonly VITE_APP_NAME: string;
  27. /** 项目标题 */
  28. readonly VITE_APP_TITLE: string;
  29. /** 项目描述 */
  30. readonly VITE_APP_DESC: string;
  31. /**
  32. * 权限路由模式:
  33. * - static - 前端声明的静态
  34. * - dynamic - 后端返回的动态
  35. */
  36. readonly VITE_AUTH_ROUTE_MODE: 'static' | 'dynamic';
  37. /** 路由首页的路径 */
  38. readonly VITE_ROUTE_HOME_PATH: AuthRoute.RoutePath;
  39. /** iconify图标作为组件的前缀 */
  40. readonly VITE_ICON_PREFFIX: string;
  41. /**
  42. * 本地SVG图标作为组件的前缀, 请注意一定要包含 VITE_ICON_PREFFIX
  43. * - 格式 {VITE_ICON_PREFFIX}-{本地图标集合名称}
  44. * - 例如:icon-local
  45. */
  46. readonly VITE_ICON_LOCAL_PREFFIX: string;
  47. /** 后端服务的环境类型 */
  48. readonly VITE_SERVICE_ENV?: ServiceEnvType;
  49. /** 开启请求代理 */
  50. readonly VITE_HTTP_PROXY?: 'Y' | 'N';
  51. /** 是否开启打包文件大小结果分析 */
  52. readonly VITE_VISUALIZER?: 'Y' | 'N';
  53. /** 是否开启打包压缩 */
  54. readonly VITE_COMPRESS?: 'Y' | 'N';
  55. /** 压缩算法类型 */
  56. readonly VITE_COMPRESS_TYPE?: 'gzip' | 'brotliCompress' | 'deflate' | 'deflateRaw';
  57. /** 是否应用pwa */
  58. readonly VITE_PWA?: 'Y' | 'N';
  59. /**
  60. * 是否开启生产模式下的mock
  61. * @description 生产模式下会拦截XHR,导致无法获取response,不使用mock请求时设置为N
  62. */
  63. readonly VITE_PROD_MOCK?: 'Y' | 'N';
  64. /** hash路由模式 */
  65. readonly VITE_HASH_ROUTE?: 'Y' | 'N';
  66. /** 是否是部署的vercel */
  67. readonly VITE_VERCEL?: 'Y' | 'N';
  68. }
  69. interface ImportMeta {
  70. readonly env: ImportMetaEnv;
  71. }