跳到正文

Monorepo 项目地图

text
vue-audio-native
├── packages/audio-core          # 浏览器音频状态与能力契约
├── packages/vue-audio-native    # Vue 3 组件、插件、composable、CSS
├── apps/demo-vue                # shadcn-vue 产品级演示
├── apps/compatibility-lab       # 浏览器/WebView 能力探针
├── fixtures/vite-vue            # 干净 Vite 消费者
├── fixtures/nuxt                # Nuxt SSR 消费者
└── docs                         # Silen 文档、ADR、知识库、Agent Contract

docs 是仓库内的内容根,但不是 pnpm workspace;Silen 安装在根开发依赖中,避免依赖目录 被静态内容扫描。播放器 package、Demo、fixtures 仍由 Turborepo workspace 管理。

依赖方向

来源可以依赖不可以依赖
audio-core浏览器标准 APIVue、React、Lucide、Tailwind、shadcn
vue-audio-nativeaudio-core、Vue、@lucide/vueDemo UI、Reka、shadcn-vue
Demo / Lab发布包、shadcn-vue、Reka、Tailwind未公开的包内部路径
fixturesnpm 风格公共入口Monorepo 私有实现
docs公共 API、ADR、验证证据凭据、绝对本机路径、私有端点

核心规则是单向适配:audio-core → Vue adapter → UI/consumer。任何媒体状态修复先进入 core,再由 Vue 层翻译事件和响应式快照,不能在组件中维护第二套播放状态机。

维护入口

修改类型首要文件必须补充的证据
状态或媒体事件packages/audio-core/srccore 单测、覆盖率、全浏览器 E2E
Vue props/事件/插槽packages/vue-audio-native/srcVue 单测、迁移文档、fixture
样式/交互包 CSS 与 Demo键盘、触摸、axe、包体积
WebView 支持capability/Bridge 与 lab设备记录,不使用 UA 分支
发布元数据package、Changeset、workflowpack、registry 干净安装、权限
文档/AIdocsAGENTS.mdSilen build、audit、eval

跨仓库关系

React 适配器位于独立的 trsoliu/react-audio-native 仓库,并精确依赖 已发布的 @trsoliu/audio-core。发布顺序始终是 core → Vue → React。