跳转到内容

项目结构

https://github.com/Mr-Quin/danmaku-anywhere

  • Node.js >= 24
  • pnpm >= 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 交互
      • …
    • 文件夹web-scraper/ - 网页/媒体元数据抓取
      • …
    • 文件夹bangumi-api/ - Bangumi API 类型与 schema
      • …
    • 文件夹result/ - Result<T, E> 类型工具
      • …
    • 文件夹integration-policy/ - 站点集成策略 schema
      • …
  • package.json
  1. 安装依赖
    Terminal window
    pnpm install
  2. 构建共享包(扩展、Web 应用、Worker 都依赖于已构建的 packages/*)
    Terminal window
    pnpm build:packages

扩展位于 packages/danmaku-anywhere。

推荐使用 dev:browser,会自动启动一个独立的 Chrome 实例,并加载扩展:

Terminal window
pnpm dev:browser

支持HMR,改动源码会自动刷新。用户配置保存在 packages/danmaku-anywhere/.playwright-profile,可重复使用。

Terminal window
pnpm package

输出在 packages/danmaku-anywhere/package。

Web 应用位于 app/web,依赖浏览器扩展才能完整工作。

Terminal window
cd app/web
pnpm start

后端位于 backend/proxy。

Terminal window
cd backend/proxy
pnpm dev