env.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import type { GlobEnvConfig } from '/#/config';
  2. // import { warn } from '/@/utils/log';
  3. import pkg from '../../package.json';
  4. export function getCommonStoragePrefix() {
  5. const { VITE_GLOB_APP_SHORT_NAME } = getAppEnvConfig();
  6. return `${VITE_GLOB_APP_SHORT_NAME}__${getEnv()}`.toUpperCase();
  7. }
  8. // Generate cache key according to version
  9. export function getStorageShortName() {
  10. return `${getCommonStoragePrefix()}${`__${pkg.version}`}__`.toUpperCase();
  11. }
  12. export function getAppEnvConfig() {
  13. const ENV = import.meta.env as unknown as GlobEnvConfig;
  14. const {
  15. VITE_GLOB_APP_TITLE,
  16. VITE_GLOB_API_URL,
  17. VITE_USE_MOCK,
  18. VITE_GLOB_APP_SHORT_NAME,
  19. VITE_GLOB_API_URL_PREFIX,
  20. VITE_GLOB_APP_OPEN_SSO,
  21. VITE_GLOB_APP_OPEN_QIANKUN,
  22. VITE_GLOB_APP_CAS_BASE_URL,
  23. VITE_GLOB_DOMAIN_URL,
  24. VITE_GLOB_ONLINE_VIEW_URL,
  25. // 全局隐藏哪些布局,多个用逗号隔开
  26. VITE_GLOB_HIDE_LAYOUT_TYPES,
  27. // 当前运行在什么平台
  28. VITE_GLOB_RUN_PLATFORM,
  29. // 【JEECG作为乾坤子应用】
  30. VITE_GLOB_QIANKUN_MICRO_APP_NAME,
  31. VITE_GLOB_QIANKUN_MICRO_APP_ENTRY,
  32. //在线文档编辑版本。可选属性:wps, onlyoffice
  33. VITE_GLOB_ONLINE_DOCUMENT_VERSION,
  34. } = ENV;
  35. // if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) {
  36. // warn(
  37. // `VITE_GLOB_APP_SHORT_NAME 变量只能是字符/下划线,请在环境变量中修改并重新运行.`
  38. // );
  39. // }
  40. return {
  41. VITE_GLOB_APP_TITLE,
  42. VITE_GLOB_API_URL,
  43. VITE_USE_MOCK,
  44. VITE_GLOB_APP_SHORT_NAME,
  45. VITE_GLOB_API_URL_PREFIX,
  46. VITE_GLOB_APP_OPEN_SSO,
  47. VITE_GLOB_APP_OPEN_QIANKUN,
  48. VITE_GLOB_APP_CAS_BASE_URL,
  49. VITE_GLOB_DOMAIN_URL,
  50. VITE_GLOB_ONLINE_VIEW_URL,
  51. VITE_GLOB_HIDE_LAYOUT_TYPES,
  52. VITE_GLOB_RUN_PLATFORM,
  53. // 【JEECG作为乾坤子应用】
  54. VITE_GLOB_QIANKUN_MICRO_APP_NAME,
  55. VITE_GLOB_QIANKUN_MICRO_APP_ENTRY,
  56. //在线文档编辑版本。可选属性:wps, onlyoffice
  57. VITE_GLOB_ONLINE_DOCUMENT_VERSION,
  58. };
  59. }
  60. /**
  61. * @description: Development mode
  62. */
  63. export const devMode = 'development';
  64. /**
  65. * @description: Production mode
  66. */
  67. export const prodMode = 'production';
  68. /**
  69. * @description: Get environment variables
  70. * @returns:
  71. * @example:
  72. */
  73. export function getEnv(): string {
  74. return import.meta.env.MODE;
  75. }
  76. /**
  77. * @description: Is it a development mode
  78. * @returns:
  79. * @example:
  80. */
  81. export function isDevMode(): boolean {
  82. return import.meta.env.DEV;
  83. }
  84. /**
  85. * @description: Is it a production mode
  86. * @returns:
  87. * @example:
  88. */
  89. export function isProdMode(): boolean {
  90. return import.meta.env.PROD;
  91. }
  92. export function getHideLayoutTypes(): string[] {
  93. const { VITE_GLOB_HIDE_LAYOUT_TYPES } = getAppEnvConfig();
  94. if (typeof VITE_GLOB_HIDE_LAYOUT_TYPES !== 'string') {
  95. return [];
  96. }
  97. return VITE_GLOB_HIDE_LAYOUT_TYPES.split(',');
  98. }
  99. /**
  100. * 获取在线文档版本号
  101. */
  102. export function getOnlineDocumentVersion(): string {
  103. const { VITE_GLOB_ONLINE_DOCUMENT_VERSION } = getAppEnvConfig();
  104. if (typeof VITE_GLOB_ONLINE_DOCUMENT_VERSION !== 'string') {
  105. return 'wps';
  106. }
  107. return VITE_GLOB_ONLINE_DOCUMENT_VERSION;
  108. }