トラブルシューティング
デプロイがリモート 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 に制限されています。ゲームから OpenAI、ローカル LM Studio、独自バックエンドへ直接 fetch しないでください。
ts
await vifu.ai.generateText({
model: "basic",
messages: [{ role: "user", content: "Give a hint." }]
});hostConnected が false のまま
- Vifu の iframe runtime 内で開いているか確認します。
await vifu.ready()を呼んでいるか確認します。- 通常のローカルブラウザーでは
falseのままで正常です。 - 古い
companion.status()ではなくvifu.status()を確認します。
リソースが読めない
data、media、bundle.includeがマニフェストにあるか確認します。- デプロイ後のパスではなく、マニフェストの id / path を
vifu.resources.*に渡します。 - 生の
/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 などの公開フィールドを使ってください。