@maxax/x-plugins-micro 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/setup.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/setup.ts"],"sourcesContent":["export * from './setup'\nexport * from './types'\n","/**\n * 微前端应用设置和启动模块\n * @module setup\n */\n\nimport type { FrameworkConfiguration } from 'qiankun'\nimport { addGlobalUncaughtErrorHandler, registerMicroApps, start } from 'qiankun'\nimport type { MicroAppDescriptor, MicroAppSetupOptions, MicroAppStartOptions } from './types'\n\n/**\n * 微前端管理器类\n * 负责管理微应用的注册、启动和生命周期\n */\nexport class MicroAppManager {\n /** 是否已注册微应用 */\n private hasRegistered = false\n\n /** 是否已启动微前端框架 */\n private hasStarted = false\n\n /** 微应用配置列表 */\n private apps: MicroAppDescriptor[] = []\n\n /** 启动配置选项 */\n private startOptions: MicroAppStartOptions = {}\n\n /** 自定义加载器函数 */\n private loader?: (loading: boolean) => void\n\n /** 自定义错误处理函数 */\n private onError?: (event: Event | string) => void\n\n /**\n * 检查是否有有效的微应用配置\n * @returns 是否存在有效的微应用\n */\n hasMicroApps(): boolean {\n return this.apps.length > 0\n }\n\n /**\n * 过滤出有效的微应用配置(必须有 entry)\n * @param apps 微应用配置列表\n * @returns 有效的微应用配置列表\n */\n private filterValidApps(apps: MicroAppDescriptor[]): MicroAppDescriptor[] {\n return apps.filter((app): app is MicroAppDescriptor & { entry: string } => {\n return typeof app.entry === 'string' && app.entry.length > 0\n })\n }\n\n /**\n * 设置微前端应用\n * @param options 设置选项\n */\n setup(options: MicroAppSetupOptions): void {\n if (this.hasRegistered) {\n console.warn('[x-micro-plugin] 微应用已经注册,跳过重复注册')\n return\n }\n\n // 过滤出有效的微应用配置\n this.apps = this.filterValidApps(options.apps)\n\n if (!this.hasMicroApps()) {\n console.warn('[x-micro-plugin] 没有有效的微应用配置,跳过注册')\n return\n }\n\n // 保存配置选项\n this.startOptions = options.startOptions || {}\n this.loader = options.loader\n this.onError = options.onError\n\n // 注册微应用\n this.registerMicroApps()\n\n // 设置全局错误处理\n this.setupErrorHandler()\n\n this.hasRegistered = true\n }\n\n /**\n * 注册微应用到 qiankun\n */\n private registerMicroApps(): void {\n registerMicroApps(\n this.apps.map(app => ({\n name: app.name,\n entry: app.entry!,\n container: `#${app.containerId}`,\n activeRule: app.activeRule,\n props: {\n ...app.props\n },\n loader: (loading: boolean) => {\n // 调用自定义加载器\n this.loader?.(loading)\n }\n }))\n )\n }\n\n /**\n * 设置全局错误处理\n */\n private setupErrorHandler(): void {\n addGlobalUncaughtErrorHandler((event: Event | string) => {\n // 调用自定义错误处理函数\n if (this.onError) {\n this.onError(event)\n } else {\n // 默认错误处理\n console.error('[x-micro-plugin] 微应用加载错误', event)\n // 尝试使用全局消息提示\n if (typeof window !== 'undefined' && (window as any).$message) {\n console.error('子应用加载失败,请稍后重试')\n }\n }\n })\n }\n\n /**\n * 启动微前端框架\n */\n start(): void {\n if (!this.hasRegistered) {\n console.warn('[x-micro-plugin] 微应用尚未注册,请先调用 setup() 方法')\n return\n }\n\n if (this.hasStarted) {\n console.warn('[x-micro-plugin] 微前端框架已经启动,跳过重复启动')\n return\n }\n\n const startOpts: FrameworkConfiguration = {\n prefetch: this.startOptions.prefetch !== false, // 默认启用预加载\n sandbox: {\n experimentalStyleIsolation: this.startOptions.sandbox?.experimentalStyleIsolation ?? true,\n strictStyleIsolation: this.startOptions.sandbox?.strictStyleIsolation ?? false,\n ...this.startOptions.sandbox\n },\n ...this.startOptions\n }\n\n start(startOpts)\n\n this.hasStarted = true\n }\n\n /**\n * 获取已注册的微应用配置列表\n * @returns 微应用配置列表的只读副本\n */\n getApps(): ReadonlyArray<MicroAppDescriptor> {\n return [...this.apps]\n }\n\n /**\n * 重置管理器状态(主要用于测试)\n */\n reset(): void {\n this.hasRegistered = false\n this.hasStarted = false\n this.apps = []\n this.startOptions = {}\n this.loader = undefined\n this.onError = undefined\n }\n}\n\n/**\n * 全局微前端管理器实例\n */\nexport const microAppManager = new MicroAppManager()\n\n/**\n * 设置微前端应用(便捷函数)\n * @param options 设置选项\n */\nexport function setupMicroPluginApps(options: MicroAppSetupOptions): void {\n microAppManager.setup(options)\n}\n\n/**\n * 启动微前端框架(便捷函数)\n */\nexport function startMicroPluginApps(): void {\n microAppManager.start()\n}\n\n/**\n * 检查是否有微应用(便捷函数)\n * @returns 是否存在微应用\n */\nexport function hasMicroApps(): boolean {\n return microAppManager.hasMicroApps()\n}\n\n/**\n * 获取微应用配置列表(便捷函数)\n * @returns 微应用配置列表\n */\nexport function getMicroApps(): ReadonlyArray<MicroAppDescriptor> {\n return microAppManager.getApps()\n}\n\n/**\n * 类型守卫:检查微应用是否有有效的入口地址\n * @param app 微应用描述符\n * @returns 是否为有效的微应用(有入口地址)\n */\nexport function hasValidEntry(app: MicroAppDescriptor): app is MicroAppDescriptor & { entry: string } {\n return typeof app.entry === 'string' && app.entry.length > 0\n}\n"],"mappings":"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","names":[]}
|