TX032
Yoga کی WebAssembly لوڈ ہونے میں ناکامی
اس کی وجہ
initYoga() فنکشن Text.js ایپس (text dev، text build) میں، @textjs/client ریزولو کنڈیشن سیٹ کرنے والی بلڈز میں، اور جب آپ initYoga({ wasm }) پاس کرتے ہیں تو Yoga کی WebAssembly کو .wasm فائل سے لوڈ کرتا ہے۔ درخواست ناکام ہوئی، ایرر اسٹیٹس واپس آیا، یا واپس آنے والا مواد درست 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() سے پہلے initYoga() کو اس کے URL، اس کے بائٹس یا کمپائل شدہ WebAssembly.Module کے ساتھ کال کریں۔ صرف پہلی کال Yoga کو لوڈ کرتی ہے:
import { initYoga } from "@textjs/core";await initYoga({ wasm: "/yoga.wasm" });WebAssembly دیکھیں۔