[重构/日常工作] 在跟踪工具中保留幅度延迟加载边界
描述:保持 Amplitude SDK 实现导入在分析激活边界后面。提供程序是动态导入的,但常用的跟踪工具通过静态导入来绕过该边界: 1. `web/app/components/base/amplitude/lazy-amplitude-provider.tsx` 动态导入 `AmplitudeProvider`。 2. `amplitude/index.ts` 还重新导出了来自 `utils.ts` 的跟踪和身份函数。 3. `utils.ts` 静态导入了 `./init` 中的 `@amplitude/analytics-browser` 和 `getIsAmplitudeInitialized`。 4. `init.ts` 静态导入了 `@amplitude/analytics-browser` 和 `@amplitude/plugin-session-replay-browser`。 5. 导航/帐户 UI 和外部服务同步使用这些工具。 本地 Rolldown 客户端构建可确认静态 manifest 链: app/components/main-nav/layout.tsx → _help-menu-D6_0F4Dx.js → _utils-UCOVMtae.js 此外,`CloudAnalyticsLayoutBoundary` 还静态导入了该工具块。该共享块包含 187 个模块,大小为 **337,689 字节**,约为 **92,891 字节 gzip**。这些是共享块大小,而不是保证节省或测量生产网络传输。一些回放记录模块仍然是动态导入;它们的整个包大小不应被计算为迫切的负载。 通过构建 Vinext 浏览器目标,检查客户端 manifest 的静态 `imports` 并跟踪上面的工具,可以重现此问题。仅动态导入提供程序并不阻止 SDK 通过其他地方被静态访问。
内容来源: langgenius/dify