四零语境后端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
3.5 KiB

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