diff --git a/package.json b/package.json index cbda66b..2acac2e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kunpocc", - "version": "1.1.6", + "version": "1.1.7", "description": "基于creator3.0+的kunpocc库", "main": "./dist/kunpocc.cjs", "module": "./dist/kunpocc.mjs", diff --git a/src/ui/ComponentExtendHelper.ts b/src/ui/ComponentExtendHelper.ts index 06e4095..dd4f0de 100644 --- a/src/ui/ComponentExtendHelper.ts +++ b/src/ui/ComponentExtendHelper.ts @@ -9,10 +9,19 @@ import { PropsHelper } from "./PropsHelper"; import { _uidecorator } from "./UIDecorator"; export class ComponentExtendHelper { + /** 已注册的组件集合 @internal */ + private static _registeredComponents: Set = new Set(); + public static register(): void { for (const { ctor, res } of _uidecorator.getComponentMaps().values()) { + const componentKey = `${res.pkg}/${res.name}`; + if (this._registeredComponents.has(componentKey)) { + debug(`自定义组件已注册,跳过 组件名:${res.name} 包名:${res.pkg}`); + continue; + } debug(`自定义组件注册 组件名:${res.name} 包名:${res.pkg}`); this.registerComponent(ctor, res.pkg, res.name); + this._registeredComponents.add(componentKey); } } diff --git a/src/ui/WindowResPool.ts b/src/ui/WindowResPool.ts index 9adb8c8..707bf0a 100644 --- a/src/ui/WindowResPool.ts +++ b/src/ui/WindowResPool.ts @@ -60,7 +60,7 @@ export class WindowResPool { */ public add(ctor: any, group: string, pkg: string, name: string): void { if (this.has(name)) { - throw new Error(`窗口【${name}】信息已注册 请勿重复注册`); + return; } this._windowInfos.set(name, { ctor: ctor, @@ -89,6 +89,9 @@ export class WindowResPool { * @param info */ public addHeader(ctor: any, pkg: string, name: string): void { + if (this.hasHeader(name)) { + return; + } this._headerInfos.set(name, { ctor: ctor, pkg: pkg