TX032
تعذّر تحميل WebAssembly الخاص بـ Yoga
سبب حدوثه
تحمّل initYoga() وحدة WebAssembly الخاصة بـ Yoga من ملف .wasm في تطبيقات Text.js (text dev، text build)، وفي عمليات البناء التي تضبط شرط الحل @textjs/client، وعند تمرير initYoga({ wasm }). فشل الطلب، أو أعاد حالة خطأ، أو لم تكن الاستجابة WebAssembly صالحًا. تذكر رسالة الخطأ عنوان URL وقيمة Content-Type التي أرسلها الخادم. الأسباب المعتادة هي خادم يستجيب لعنوان URL الخاص بملف .wasm بصفحة HTML بديلة، وسياسة أمان محتوى لا تتضمن 'wasm-unsafe-eval' في script-src.
طريقة إصلاحه
اجعل عنوان URL الوارد في رسالة الخطأ يعيد الملف مع Content-Type: application/wasm ليُترجم أثناء تنزيله. يجب أن تستثني قاعدة إعادة الكتابة التي تقدّم index.html للمسارات غير المعروفة المسار /assets/. اسمح باستخدام WebAssembly في سياسة أمان المحتوى:
Content-Security-Policy: script-src 'self' 'wasm-unsafe-eval'; connect-src 'self'إذا كنت تركّب وحدة التحكم بنفسك وتقدّم الملف من مكان آخر، فاستدعِ initYoga() مع عنوان URL الخاص به، أو بايتاته، أو وحدة WebAssembly.Module مترجمة قبل استدعاء createConsoleRoot(). لا يحمّل Yoga إلا الاستدعاء الأول:
import { initYoga } from "@textjs/core";await initYoga({ wasm: "/yoga.wasm" });راجع WebAssembly.