项目结构
https://github.com/Mr-Quin/danmaku-anywhere
Node.js>= 24pnpm>= 10(请使用pnpm,不要使用npm或yarn)- Chrome(开发浏览器扩展时由
dev:browser自动启动)
本项目为pnpm多包workspace。
文件夹docs/ - 文档(本站,Astro / Starlight)
- …
文件夹app/
文件夹web/ - Web应用,基于 Kazumi 规则的看番网站 (Angular)
- …
文件夹backend/
文件夹proxy/ - Cloudflare Worker,与弹弹play API交互、AI 服务
- …
文件夹packages/
文件夹danmaku-anywhere/ - 扩展主体
文件夹src/
文件夹background/ - 后台脚本(Service Worker)
- …
文件夹content/ - 内容脚本
文件夹controller/ - 控件
- …
文件夹player/ - 弹幕播放器
- …
文件夹popup/ - 弹出窗口
- …
文件夹e2e/ - Playwright e2e 测试与开发浏览器启动脚本
- …
文件夹danmaku-converter/ - 弹幕格式解析与归一化
- …
文件夹danmaku-engine/ - 弹幕渲染器
- …
文件夹danmaku-provider/ - 与第三方弹幕源 API 交互
- …
文件夹dango/ - 声明式弹幕源 manifest 引擎
- …
文件夹dango-manifests/ - 内置 dango manifest(JSON)
- …
文件夹web-scraper/ - 网页/媒体元数据抓取
- …
文件夹bangumi-api/ - Bangumi API 类型与 schema
- …
文件夹result/ -
Result<T, E>类型工具- …
文件夹integration-policy/ - 站点集成策略 schema
- …
- package.json
- 安装依赖
Terminal window pnpm install - 构建共享包(扩展、Web 应用、Worker 都依赖于已构建的
packages/*)Terminal window pnpm build:packages
扩展位于 packages/danmaku-anywhere。
推荐使用 dev:browser,会自动启动一个独立的 Chrome 实例,并加载扩展:
pnpm dev:browser支持HMR,改动源码会自动刷新。用户配置保存在 packages/danmaku-anywhere/.playwright-profile,可重复使用。
Firefox开发需要web-ext,每次改动后需要重新构建
用--watch选项运行构建命令
pnpm build:firefox --watch另开一个终端运行
pnpm start:firefoxpnpm packagepnpm package:firefox输出在 packages/danmaku-anywhere/package。
Web App
Section titled “Web App”Web 应用位于 app/web,依赖浏览器扩展才能完整工作。
cd app/webpnpm startBackend (Cloudflare Worker)
Section titled “Backend (Cloudflare Worker)”后端位于 backend/proxy。
cd backend/proxypnpm dev