perf(turbopack): split dynamic HMR chunk lists#169
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the enable_dynamic_hmr_chunk_lists option to BrowserChunkingContext, allowing separate HMR chunk lists to be generated for each dynamic chunk group instead of recursively adding all reachable dynamic chunks to the entry chunk list. Feedback on the changes highlights a potential issue where a redundant dynamic HMR chunk list register chunk is generated for the entry chunk group, which already has its own registration. It is recommended to skip this generation when the current chunk group is the root entry chunk group.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
e9fc719 to
8c80c8b
Compare
|
安全加固已补齐并推送:动态 chunk list 现在先建立带 expectedVersion/validation token 的 HMR baseline,成员 HTTP 加载后再二次校验;更新按 batch 去重,JS/CSS 使用内容版本 URL 并做精确 owner/清理;missing、重连、旧帧和并发 generation 均有终止路径。standalone WebSocket 也补了 clean close 重连。验证:相关 cargo check/clippy 通过;Utoo 侧真实 Chromium HMR E2E 8 个场景 repeat 3,共 24/24 通过。 |
Summary
Why
Large eager applications can have thousands of lazy chunks. Recursively placing all of them in the entry HMR list makes every subscription and update traverse the whole application graph. Utoopack enables this option only in development.
Validation