AMLL 主仓目前是一个复杂的 monorepo,包含
- JS/TS workspace:
core、react、react-full、vue、ttml、docs、player
- Rust wasm 包:
lyric、fft、ws-protocol
- Rust 原生包:
player-core
- Tauri 桌面应用:
packages/player/src-tauri
- 另一个纯 Rust 原型:
skia-player(现已基本废弃,不是 pnpm workspace 的主线)
Player 的 Vite 配置直接 alias 到 core/react/react-full/ttml 源码,同时承担产品代码和库集成测试职责。这导致:
- 调试链路被 Tauri/平台依赖(FFmpeg 等)明显拖重,不能很好服务 core 的迭代
- 对大多数贡献者不友好,尤其前端贡献者
- Player 作为下游项目却享受「一等公民」地位,公共 npm 包迭代被轻视,以至于部分下游因 npm 包迭代过慢而 vendor 核心源码
- CI、依赖、评审、发布语义混乱,需要不停判断问题来自核心库还是 Player
因此考虑:
- 将 Player 拆分为独立仓库进行维护,与主仓解耦。Player 后续考虑直接采用 npm 公共版本,或使用 git submodule 等引入 AMLL。
- 主仓目前在主仓维护一个轻量化 playground 用于调试,Player 作为端到端产品验证。
分支 Linho1219:remove-player 已开始原型验证。
AMLL 主仓目前是一个复杂的 monorepo,包含
core、react、react-full、vue、ttml、docs、playerlyric、fft、ws-protocolplayer-corepackages/player/src-tauriskia-player(现已基本废弃,不是 pnpm workspace 的主线)Player 的 Vite 配置直接 alias 到
core/react/react-full/ttml源码,同时承担产品代码和库集成测试职责。这导致:因此考虑:
分支 Linho1219:remove-player 已开始原型验证。