apps.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { prefetchApps, AppMetadata } from 'qiankun';
  2. /**
  3. *微应用apps
  4. * @name: 微应用名称 - 具有唯一性
  5. * @entry: 微应用入口.必选 - 通过该地址加载微应用,
  6. * @container: 微应用挂载节点 - 微应用加载完成后将挂载在该节点上
  7. * @activeRule: 微应用触发的路由规则 - 触发路由规则后将加载该微应用
  8. */
  9. //子应用列表
  10. const _apps: AppMetadata[] = [];
  11. for (const key in import.meta.env) {
  12. if (key === 'VITE_APP_SUB_APP') {
  13. const appList = JSON.parse(import.meta.env[key].replace(/'/g, '"'));
  14. appList.forEach((app) => {
  15. let utlStr;
  16. if (import.meta.env.PROD) {
  17. // 多端口请求
  18. if (VUE_APP_URL.baseUrl.split(':').length > 1) {
  19. utlStr = VUE_APP_URL.baseUrl.split(':')[1] + app[1];
  20. } else {
  21. utlStr = app[1];
  22. }
  23. } else {
  24. utlStr = app[1];
  25. }
  26. const obj = {
  27. name: app[0],
  28. entry: utlStr,
  29. container: `#${app[0]}`,
  30. activeRule: app[0],
  31. };
  32. _apps.push(obj);
  33. });
  34. }
  35. prefetchApps([..._apps]);
  36. }
  37. export const apps = _apps;