TX032

YogaのWebAssemblyの読み込み失敗

コンソール

Text.js error TX032: Could not load Yoga's WebAssembly from … (…).

発生原因

initYoga() は、Text.jsアプリ(text dev、text build)、@textjs/client の解決条件を設定したビルド、および initYoga({ wasm }) を渡した場合に、.wasm ファイルからYogaのWebAssemblyを読み込みます。リクエストが失敗したか、エラーステータスが返されたか、返された内容が有効なWebAssemblyではありませんでした。エラーにはURLとサーバーが送信した Content-Type が示されます。よくある原因は、サーバーが .wasm のURLに対してフォールバック用のHTMLページを返していることや、Content Security Policyの script-src に 'wasm-unsafe-eval' が含まれていないことです。

修正方法

エラーに示されたURLがファイルを返すようにし、ダウンロード中にコンパイルできるよう Content-Type: application/wasm を設定してください。不明なパスに対して index.html を返すリライトでは、/assets/ を対象から除外する必要があります。Content Security PolicyでWebAssemblyを許可してください。

Content-Security-Policy: script-src 'self' 'wasm-unsafe-eval'; connect-src 'self'

コンソールを自分でマウントし、別の場所からファイルを配信する場合は、createConsoleRoot() の前に、ファイルのURL、バイト列、またはコンパイル済みの WebAssembly.Module を指定して initYoga() を呼び出してください。Yogaを読み込むのは最初の呼び出しのみです。

import { initYoga } from "@textjs/core";await initYoga({ wasm: "/yoga.wasm" });

WebAssemblyを参照してください。