import packageJson from '../package.json'; import { createApp } from 'vue'; import platform from 'platform-core'; import { ApplicationInitializer, ComponentManager } from 'platform-core'; import localMocks from './mock'; import localI18nMessages from './i18n'; import localMenus from './menus/menus.json'; import localRoutes from './routes/routes.json'; import localComponents from './components'; import App from './App.vue'; import 'platform-core/dist/css/platform-core.css'; import './css/tailwind.css'; // 设置远程组件加载器 // 覆盖 platform-core 包中的 remoteComponentLoader 函数 // 只有在主前端项目中编写如下的 remoteComponentLoader 函数才能实现 webpack MF 的 shared 功能 ComponentManager.setRemoteComponentLoader((moduleName: string, componentName: string): any => { return async () => { await __webpack_init_sharing__('default'); const container = window[moduleName]; if (container) { await container.init(__webpack_share_scopes__.default); const factory = await window[moduleName].get(componentName); return factory(); } else { throw new Error('window["' + moduleName + '"] is undefined!'); } }; }); //初始化平台 ApplicationInitializer.initialize({ moduleName: packageJson.name, moduleVersion: packageJson.version, localMocks: localMocks, localI18nMessages: localI18nMessages, localMenus: localMenus, localRoutes: localRoutes, localComponents: localComponents, callback: () => { const app = createApp(App); app.use(platform); app.mount('#app'); }, });