故障排查
部署因远程 JavaScript 停止
vifu deploy 会阻止 CDN JavaScript、远程 WASM 和远程 Worker 脚本。
常见原因:
- HTML 中有
<script src="https://cdn...">。 - 代码中有
await import("https://cdn...")。 - 可选的本地 AI 提供方被静态 import,即使运行时不用也进入了打包产物。
解决方式:
- 把依赖打包进本地构建。
- 从部署构建中移除不用的提供方 / import。
- AI 通过
vifu.ai.generateText(...)或vifu.ai.chat(...)调用。
CSP 阻止外部 API
Vifu 运行环境的 connect-src 限制为 Vifu 平台 API。游戏不要直接 fetch OpenAI、本地 LM Studio 或自定义后端。
ts
await vifu.ai.generateText({
model: "basic",
messages: [{ role: "user", content: "Give a hint." }]
});hostConnected 一直是 false
- 确认游戏在 Vifu iframe runtime 中打开。
- 确认调用了
await vifu.ready()。 - 普通本地浏览器中保持
false是正常的。 - 检查
vifu.status(),不要使用旧的companion.status()。
资源读不到
- 确认清单中有
data、media或bundle.include。 - 把清单中的 id / path 传给
vifu.resources.*,不要传部署后的 URL。 - 不要在游戏中拼接原始
/v1/assets/runtime-*URL。
同一个游戏没有更新
vifu deploy 用当前登录的所有者和部署名决定更新目标。
- 确认登录的是同一个账号 / API 环境。
- 改变
--name会被视为另一个游戏。 - dev 和 production 是不同环境。
清单被拒绝
公开 V1 不写 id、entry、play、runtime、services、devices、resources、permissions、capabilities、browser、security。
请使用 main.url、build.output、ai、data、media、bundle、save 等公开字段。