Files
EasyFlow/easyflow-ui-admin/app/src/main.ts
陈子默 da59c713f9 fix: 提升管理端启动与导航稳定性
- 等待初始路由就绪并提供可恢复的启动失败页面

- 收敛失效登录导航并按需加载 SVG 图标资源
2026-07-24 19:02:28 +08:00

53 lines
1.5 KiB
TypeScript

/* eslint-disable perfectionist/sort-imports -- 兼容层必须先于所有业务依赖执行。 */
import './polyfills';
import './startup-error.css';
import {
initPreferences,
preferences,
updatePreferences,
} from '@easyflow/preferences';
import { unmountGlobalLoading } from '@easyflow/utils';
import {
normalizeBrandAssetPreferences,
overridesPreferences,
} from './preferences';
import { renderStartupError } from './startup-error';
/**
* 应用初始化完成之后再进行页面加载渲染
*/
async function initApplication() {
// name用于指定项目唯一标识
// 用于区分不同项目的偏好设置以及存储数据的key前缀以及其他一些需要隔离的数据
const env = import.meta.env.PROD ? 'prod' : 'dev';
const appVersion = import.meta.env.VITE_APP_VERSION;
const namespace = `${import.meta.env.VITE_APP_NAMESPACE}-${appVersion}-${env}`;
// app偏好设置初始化
await initPreferences({
namespace,
overrides: overridesPreferences,
});
const { changed, normalized } = normalizeBrandAssetPreferences(preferences);
if (changed) {
updatePreferences(normalized);
}
// 启动应用并挂载
// vue应用主要逻辑及视图
const { bootstrap } = await import('./bootstrap');
await bootstrap(namespace);
// 移除并销毁loading
unmountGlobalLoading();
}
initApplication().catch((error) => {
console.error('Application startup failed.', error);
renderStartupError();
unmountGlobalLoading();
});