التوثيق
/

توافق بيئة التشغيل

توافق بيئة التشغيل

اختر target لبيئة التشغيل الفعلية. قد تختلف دفاعات بناء Browser وNode؛ وهدف Browser لا يحل محل Node. يجب أن تطابق تصريحات البيئة وقيود النطاق والأدوات التكوين أيضًا.

target

  • browser - Chrome, Firefox, Safari, Edge.
  • browser-no-eval - مثل browser، لكن الناتج لا يستخدم eval(). استخدمه عندما تطبّق الصفحة المستهدفة سياسة أمان محتوى تمنع eval/unsafe-eval.
  • node - بيئة Node.js. تُعطَّل الخيارات الخاصة بالمتصفح (فهي تتطلب window/document وستكون بلا أثر أو تطلق خطأً في Node). كما أن بعض دفاعات vmSelfDefending التي تعتمد على واجهات برمجية خاصة بالمتصفح - كشف المتصفحات بلا واجهة رسومية، واستعادة realm نظيف عبر iframe، وفحوص مكافحة المفتّش/DOM - لا تُنتَج لهذا الهدف.
  • service-worker - سياق Service Worker. لا يوجد window ولا document، وقيمة self العامة مختلفة.
  • userscript - صندوق رمل مدير سكربتات المستخدم (مثل Tampermonkey). وتُعدَّل دفاعات vmSelfDefending وفقًا لذلك. يتطلب المشوِّش الإصدار 6.9.0 فما فوق.
  • bytenode - للكود الذي سيُترجَم إلى .jsc باستخدام bytenode. يتطلب المشوِّش الإصدار 6.13.0 فما فوق.

JavaScript

قد تتغير أسماء الدوال ونصوص مصادرها بالتمويه. لا تستخدم .name أو .toString() كبيانات ثابتة للتطبيق؛ استخدم معرّفات صريحة. قد تبقى الأسماء العامة مرئية بحسب الإعدادات.

strictMode

يظل strictMode: null وstrictMode: false يتعرفان على التوجيهات الصريحة ووحدات ES وطرق الأصناف كحالات strict. يعامل strictMode: true كل المدخلات بوضع strict. طابق البيئة النهائية؛ فقد يغيّر المُجمّع السلوك إذا أضاف strict mode بعد التمويه.

CLI / API

جمّع TypeScript أو JSX وأنشئ حزمة التطبيق قبل خطوة التمويه النهائية. حافظ على تعليقات اختيار دوال VM حتى ذلك الوقت. لا تصغّر ناتج Self Defending أو تعيد تنسيقه أو تعدّله بعد ذلك. خرائط المصدر غير متاحة لتمويه VM وHTML. للاختبارات الوظيفية التي تستخدم الوكلاء أو الأتمتة أو أدوات تصحيح الأخطاء، راجع الاختبار وCI.