纯前端二维码图像编辑与恢复工具。图片与计算保留在浏览器本地,无上传服务。
支持图片导入、四角定位与透视校正、黑白/未知格编辑、结构标记、实时纠错识别、按原始码字还原网格、项目保存,以及保留当前显示图层的 PNG 导出。
需要 Node.js 22.12+ 和 npm。
npm ci
npm run dev构建和预览:
npm run build
npm run preview构建产物位于 dist/。WASM 在安装与构建时复制到站点,运行时使用同源资源。资源采用相对路径,支持 GitHub Pages 的 /RecoverQCode/ 子目录。
npm run check
npm test
npm run build
npx playwright install chromium webkit
npm run test:e2e -- --project=desktop-chrome --project=mobile-webkit
npm run test:static浏览器测试会自动启动 4175 端口的预览服务;也可通过 TEST_URL 指向已有服务。CI 使用 Playwright 自带的 Chromium 和 WebKit,本地 Chrome 项目使用已安装的 Chrome。Linux 首次安装浏览器时使用 npx playwright install --with-deps chromium webkit。
工作流 在 PR 中检查格式、类型、单元测试、浏览器测试和静态子目录部署;main 更新且检查通过后自动发布,也支持手动运行。只上传 dist/,无需提交编译产物或配置部署密钥。
仓库首次启用时,在 Settings → Pages → Build and deployment → Source 选择 GitHub Actions。部署使用 GitHub 自带令牌和 github-pages 环境;PR 不执行部署。
src/:界面、图像处理、二维码内核和 Worker。public/:图标、第三方声明;vendor/自动生成,不提交。tests/:单元测试、浏览器测试和必要样例,独立于本地参考项目。scripts/:资源准备、静态部署检查和可选样例生成工具。.github/workflows/:CI 与 Pages 部署。
refer/、artifacts/、依赖、测试报告、缓存、环境文件和导出的用户项目由 .gitignore 排除。测试所需的 tests/fixtures/*.qrrecover.json 明确保留。