跳转到内容

项目结构

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

  • Node.js >= 24
  • pnpm >= 10(请使用 pnpm,不要使用 npmyarn
  • 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
  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