TX032
Yoga 的 WebAssembly 載入失敗
發生原因
在 Text.js 應用程式(text dev、text build)、設定了 @textjs/client 解析條件的建置中,以及傳入 initYoga({ wasm }) 時,initYoga() 會從 .wasm 檔案載入 Yoga 的 WebAssembly。請求失敗、回傳錯誤狀態,或回傳的內容不是有效的 WebAssembly。錯誤訊息會列出網址和伺服器傳送的 Content-Type。常見原因是伺服器對 .wasm 網址回傳 HTML 備援頁面,以及內容安全政策的 script-src 未包含 'wasm-unsafe-eval'。
修正方式
讓錯誤訊息中的網址回傳該檔案,並設定 Content-Type: application/wasm,以便在下載時同步編譯。針對未知路徑提供 index.html 的重寫規則必須略過 /assets/。在內容安全政策中允許 WebAssembly:
Content-Security-Policy: script-src 'self' 'wasm-unsafe-eval'; connect-src 'self'如果你自行掛載主控台,並從其他位置提供該檔案,請在 createConsoleRoot() 之前呼叫 initYoga(),傳入檔案的網址、位元組資料或已編譯的 WebAssembly.Module。只有第一次呼叫會載入 Yoga:
import { initYoga } from "@textjs/core";await initYoga({ wasm: "/yoga.wasm" });請參閱 WebAssembly。