import { initPreferences, preferencesManager } from './packages/preferences/src';
|
import { unmountGlobalLoading } from './packages/utils/src';
|
|
import { overridesPreferences, preferencesExtension } from './preferences';
|
|
declare const __APP_LOGO__: string;
|
declare const __APP_FAVICON__: string;
|
declare const __APP_NAME__: string;
|
|
/**
|
* 应用初始化完成之后再进行页面加载渲染
|
*/
|
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({
|
extension: preferencesExtension,
|
namespace,
|
overrides: overridesPreferences,
|
});
|
|
// 强制覆盖公司 logo 和 favicon,绕过 localStorage 缓存
|
if (__APP_LOGO__) {
|
preferencesManager.updatePreferences({ logo: { source: __APP_LOGO__ } });
|
}
|
// 强制覆盖公司名称,绕过 localStorage 缓存
|
if (__APP_NAME__) {
|
preferencesManager.updatePreferences({
|
app: { name: __APP_NAME__ },
|
copyright: { companyName: __APP_NAME__ },
|
});
|
}
|
if (__APP_FAVICON__) {
|
const link = document.querySelector('link[rel="icon"]');
|
if (link) {
|
link.setAttribute('href', __APP_FAVICON__);
|
}
|
}
|
|
// 启动应用并挂载
|
// vue应用主要逻辑及视图
|
const { bootstrap } = await import('./bootstrap');
|
await bootstrap(namespace);
|
|
// 移除并销毁loading
|
unmountGlobalLoading();
|
}
|
|
initApplication();
|