FIELD NOTES / RESEARCH & PRACTICE
风机 Web3D 复现中的真实排查记录
复现部署过程中遇到的四个环境问题与解法:内嵌浏览器 WebGL 崩溃、Git Bash 路径转换、GitHub Pages 根路径 404、凭据未持久化。
复现 darmk/wind-turbine-web3d 并部署到 GitHub Pages 的过程中,遇到几个值得记录的环境问题。它们都不是项目代码的 bug,但每一个都会让人误判。
1. 内嵌浏览器打开 WebGL 场景即崩溃
用自动化内嵌浏览器打开数字样机首页正常,但点击进入三维视图后标签页直接消失。换 Playwright + 系统 Edge(带 --enable-webgl --ignore-gpu-blocklist)一切正常。结论:内嵌 webview 的 GPU 支持不完整,WebGL 应用验证要用真实浏览器内核跑,且要把环境失败和产品失败分开记录。
2. Git Bash 的 MSYS 路径转换改写了构建参数
设置 VITE_BASE=/ 构建根路径版本时,产物里出现了 /Git/assets/... —— Git Bash 把孤立的 / 当作 POSIX 根路径转换成了 Git 安装目录。解法是加 MSYS_NO_PATHCONV=1。教训:在 Windows 上给构建工具传”看起来像路径”的环境变量,先确认它的值原样到达了进程。
3. GitHub Pages 根路径 404 让 8 项测试失败
测试套件在本地 10/10,对着公网地址跑却 8 项失败。原因:page.goto('/') 被 URL 解析成站点根 https://xxx.github.io/(404),而本地能通过纯属 Vite 开发服务器会把根路径 302 到应用 base 路径。解法:测试里的跳转地址统一从 TEST_URL 推导 pathname。教训:测试通过可能依赖了某个环境的隐式行为,换部署目标跑一遍才知道。
4. OAuth 授权成功 ≠ 凭据已持久化
git credential fill 拿到令牌只代表”本次读取成功”,持久化要靠 git credential approve。第一次授权后凭据库里并没有条目,下次调用又静默弹授权页。解法:fill 成功后立即 approve。教训:凭据流程的”能读到”和”已存储”是两回事。
小结
这四个问题的共同点:症状都指向”产品坏了”,实际都是环境或流程问题。排查时保留原始错误、区分两层、用最小脚本复现,是最省时间的路径。