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.

42 lines
1.1 KiB

  1. /** 处理环境变量 */
  2. const warpperEnv = (envConf: Recordable): ViteEnv => {
  3. /** 此处为默认值,无需修改 */
  4. const ret: ViteEnv = {
  5. VITE_PORT: 8848,
  6. VITE_PUBLIC_PATH: "",
  7. VITE_PROXY_DOMAIN: "",
  8. VITE_PROXY_DOMAIN_REAL: "",
  9. VITE_ROUTER_HISTORY: "",
  10. VITE_LEGACY: false,
  11. VITE_CDN: false
  12. };
  13. for (const envName of Object.keys(envConf)) {
  14. let realName = envConf[envName].replace(/\\n/g, "\n");
  15. realName =
  16. realName === "true" ? true : realName === "false" ? false : realName;
  17. if (envName === "VITE_PORT") {
  18. realName = Number(realName);
  19. }
  20. ret[envName] = realName;
  21. if (typeof realName === "string") {
  22. process.env[envName] = realName;
  23. } else if (typeof realName === "object") {
  24. process.env[envName] = JSON.stringify(realName);
  25. }
  26. }
  27. return ret;
  28. };
  29. /** 跨域代理重写 */
  30. const regExps = (value: string, reg: string): string => {
  31. return value.replace(new RegExp(`^${reg}`, "g"), "");
  32. };
  33. /** 环境变量 */
  34. const loadEnv = (): ViteEnv => {
  35. return import.meta.env;
  36. };
  37. export { warpperEnv, regExps, loadEnv };