# EX-01 React 消费者、异常清理与实际打包验收 起点 `3e39fc745f4dc98eba678ca081e86c1d3cc965cd`。本任务对应 React 示例, 不将其他插件的组合、设备和分发任务一并标为完成。 ## 已复现问题和实现 1. `index.html` 仍引用不存在的 `/src/main.jsx`,实际入口为 `main.tsx`。 改为实际入口,原 App 经 Vite 构建和三引擎实际加载媒体通过。 2. 原 Player effect 在调用 `getInstance` 后才返回清理函数。消费者回调抛错时, React 无法取得该清理函数,已创建实例残留。最终 `--before` 控制使用原始 Player 源码及相同候选 tarball,在 Chromium 开发模式复现:错误边界已经 显示,注册表仍有 1 个播放器。修复在重新抛出原错误前调用 `destroy(false)`; 即使清理也抛错,保留最初的消费者异常。六组最终回归均无实例/DOM 残留。 3. 原 TSX 示例没有 tsconfig,局部 ESLint 配置仅覆盖 JS/JSX。补充严格 TSX 配置,复用仓库的 TS lint 配置,修复实际源码中的类型导入和配置格式。 文件职责:`Player.tsx` 负责 React effect、引用交付和资源归属; `player-options.ts` 隔离示例特定配置和插件工厂;`App.tsx` 保持调用样例; `main.tsx` 保持 StrictMode;README 说明真实维护入口、行为和验证边界。 没有为简单包装增加通用生命周期框架。 ## 兼容性 - 保留 `option: Partial