尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

MediaPipe Tasks Vision 0.10.16 vision_wasm_internal.wasm 404 修复指南

MediaPipe Tasks Vision 0.10.16 vision_wasm_internal.wasm 404 修复指南 MediaPipe Tasks Vision 0.10.16 vision_wasm_internal.wasm 404 修复指南【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipenpm install 刚跑完页面一切正常调用 MediaPipe Tasks Vision 0.10.16 做推理的瞬间控制台弹出红色报错vision_wasm_internal.wasm404 (Not Found)。重装依赖无效你卡在这里了。对号入座你属于哪一种你在控制台看到大概率原因404 .../wasm/vision_wasm_internal.wasm包里wasm/目录缺文件或静态托管路径没对上.js和.wasm两个都 404装的 npm 包里整个wasm/目录缺失文件确实在浏览器仍报 404forVisionTasks()传的 basePath 和部署路径不一致换成低端设备/老浏览器报_nosimd404浏览器不支持 SIMD回退请求 nosimd 版该文件没拷根因wasm 文件从来不在 git 仓库里WASMWebAssembly是浏览器可直接执行的二进制指令集MediaPipe 把 C 推理内核编译成它才能在不装原生插件的情况下跑人脸检测、物体检测。说白了这些 wasm 二进制并没有随源码提交——你把整个仓库翻一遍找不到任何.wasm文件。真正的机制是构建期由 Bazel 按一张自动生成的下载清单从 Google 资产 CDN 拉取并校验。证据就在 third_party/wasm_files.bzlhttp_file( name com_google_mediapipe_tasks_web_vision_wasm_vision_wasm_internal_wasm, sha256 8e8e6fa0888776aed7ecb3d8a50ec43834b8a57358d5136de4a1cd8397a866a8, urls [https://storage.googleapis.com/mediapipe-assets/wasm/tasks/web/vision/wasm/vision_wasm_internal.wasm?generation1785185464357239], ) # 声明该 wasm 二进制的下载地址与 sha256构建下载后按此表校验随后 mediapipe/tasks/web/vision/BUILD 里的pkg_npm规则会把 6 个 wasm 文件internal/nosimd/module三种变体 × js/wasm 两种格式打进 npm 包。浏览器侧的 fileset_resolver.ts.template 再按${basePath}/vision_wasm_nosimd?_internal.js这类规则拼出文件名去请求。所以vision_wasm_internal.wasm404 逃不出三类原因0.10.16 发布的 npm 包本身就漏打wasm/文件重装同版本永远补不回来。文件在但forVisionTasks()的 basePath 和实际静态目录对不上。老浏览器无 SIMD回退请求vision_wasm_nosimd_internal.wasm而它没被拷贝。修复路径从最轻的一档开始三条路按成本递进先试第一条不行再往下走。手动补齐 wasm 文件只想先跑通的人原理包里缺的文件不会自己回来但构建配置里钉死了下载地址自己按表取一份、由你自己的静态目录托管即可。打开 third_party/wasm_files.bzl找到vision_wasm_internal和vision_wasm_nosimd_internal对应的urls下载 4 个文件mkdir -p public/wasm # 把 urls地址 替换为 bzl 中对应条目js/wasm 各一个nosimd 版同理 curl -o public/wasm/vision_wasm_internal.js urls地址 curl -o public/wasm/vision_wasm_internal.wasm urls地址代码里把 basePath 指到该目录FilesetResolver.forVisionTasks(public/wasm)。这一步卡住的人最多国内网络常直连不上 storage.googleapis.comcurl 超时就直接跳到下一条镜像路径。注意文件绝不能改名resolver 按精确文件名匹配。换官方源重装依赖怀疑安装渠道损坏的人原理代理或企业镜像偶尔会丢大二进制文件官方 registry 的 tarball 是完整的先排除渠道坏了这一档。# 先手动删除 node_modules/mediapipe/tasks-vision 和 package-lock.json npm cache clean --force npm install mediapipe/tasks-vision0.10.16 --registryhttps://registry.npmjs.org/装完检查node_modules/mediapipe/tasks-vision/wasm/是否真的出现 js 和 wasm 成对的文件。若官方源装完依然缺说明就是上游打包事故别再反复重装回到上一条手动补齐或直接升到下一个修复版本。从源码构建 npm 包想根治的高级用户原理源码构建会严格按wasm_files.bzl的 sha256 下载 wasm 并注入包内产物必然完整。git clone https://gitcode.com/GitHub_Trending/med/mediapipe.git cd mediapipe bazel build -c opt //mediapipe/tasks/web/vision:vision_pkg产物在bazel-out下的vision_pkg可作本地依赖引入。卡点提醒bazel 首次构建要拉大量工具链国内网络极慢若构建成功但浏览器仍 404问题已不在打包而在你的静态托管路径。验证 边界坑 ⚠️最小验证8 行控制台出现 wasm loaded successfully 即链路打通script typemodule import { FilesetResolver, FaceDetector } from mediapipe/tasks-vision; const fileset await FilesetResolver.forVisionTasks(public/wasm); const detector await FaceDetector.createFromOptions({ baseOptions: { modelAssetPath: face_detector.tflite }, }, fileset); console.log(wasm loaded successfully); /script修完还可能踩的坑锁文件缓存改过版本后记得手动删package-lock.json和node_modules再装否则 npm 不会真的更新。浏览器会缓存 404修好后硬刷新CtrlShiftR或开无痕否则一直命中旧 404。只拷了 simd 版_nosimd变体必须同步放齐低端设备照样 404CI 环境另要确认 wasm 以application/wasmMIME 返回。收尾根因是 wasm 二进制不在仓库、靠构建期从资产 CDN 注入分发链路任一环节都可能丢。习惯装完依赖先查wasm/目录文件成对齐全并锁定版本让问题暴露在安装期而不是运行时。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表