Skip to content

fix(core): 隔离不同版本的 Graphic 类 - #2123

Merged
xuefei1313 merged 2 commits into
developfrom
codex/fix-graphic-global-pollution
Aug 28, 2026
Merged

fix(core): 隔离不同版本的 Graphic 类#2123
xuefei1313 merged 2 commits into
developfrom
codex/fix-graphic-global-pollution

Conversation

@xuefei1313

@xuefei1313 xuefei1313 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

变更

  • 移除 Graphic 类在 globalThis/window 上的跨 bundle 全局单例,改为模块/版本内隔离
  • 移除 graphicCreator 与 graphicFactory 在 globalThis/window 上的跨 bundle共享状态,避免后加载版本覆盖先加载版本的图元构造器
  • 保留现有导出接口,并补充重复模块加载回归测试

用户反馈核验

  • 已复现:1.1.7 与新版本同时存在时,全局 graphic registry 会导致旧版本 creator 创建出新版本 Graphic 实例
  • 已确认:原生 EventManager hover 直接读取监听器,不经过 Graphic.dispatchEvent,因此反馈中的 hover 必然失效并不准确
  • 已确认:跨版本事件对象直接传给 Graphic.dispatchEvent 仍会触发 instanceof 保护;隔离 registry 可消除反馈所述的跨版本实例来源

验证

  • vrender-core 全量测试:109 suites passed,637 tests passed
  • Rush 7 个 package 全量测试通过
  • Rush 7 个 package 全量构建通过
  • 1.1.7 与本分支构建产物混合加载验证通过:creator、factory 与实例保持版本隔离
  • ESLint、Prettier、git diff --check 通过

@xuefei1313
xuefei1313 merged commit ca6cd8d into develop Aug 28, 2026
7 of 8 checks passed
@xuefei1313
xuefei1313 deleted the codex/fix-graphic-global-pollution branch August 28, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant