توافق بيئة التشغيل
اختر 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.
