Совместимость со средой
Выбирайте target для реальной среды выполнения. Browser- и Node-сборки могут содержать разную защиту: target Browser не заменяет Node. Объявления среды, ограничения доменов и инструменты выполнения тоже должны соответствовать настройкам.
target
browser- Chrome, Firefox, Safari, Edge.browser-no-eval- то же, чтоbrowser, но результат не используетeval(). Используйте, когда целевая страница имеет Content Security Policy, запрещающуюeval/unsafe-eval.node- среда Node.js. Специфичные для браузера опции отключаются (им нужныwindow/document, и в Node они были бы бездействующими или бросали бы исключения). Некоторые защитыvmSelfDefending, опирающиеся на API только для браузера, - обнаружение headless-браузера, восстановление чистого realm через iframe, проверки анти-инспектора/DOM - для этой целевой среды не выпускаются.service-worker- контекст Service Worker. Нетwindow, нетdocument, другой глобальный объектself.userscript- песочница менеджера пользовательских скриптов (например, Tampermonkey). ЗащитыvmSelfDefendingсоответственно подстраиваются. Требуется обфускатор v6.9.0+.bytenode- для кода, который будет скомпилирован в.jscс помощью bytenode. Требуется обфускатор v6.13.0+.
JavaScript
Имена функций и их исходное текстовое представление могут изменяться при обфускации. Не используйте .name или .toString() как стабильные данные приложения: задавайте явные идентификаторы. Публичные глобальные имена могут оставаться видимыми в зависимости от настроек.
strictMode
strictMode: null и strictMode: false всё равно распознают явные директивы, ES-модули и методы классов как строгие. strictMode: true обрабатывает весь код как строгий. Учитывайте итоговую среду: добавление строгого режима сборщиком после обфускации может изменить поведение.
CLI / API
Компилируйте TypeScript или JSX и собирайте бандл до финального этапа обфускации. Сохраняйте комментарии выбора VM-функций до этого этапа. После него не минифицируйте, не форматируйте и не изменяйте результат с Self Defending. Карты исходного кода недоступны при VM- и HTML-обфускации. Для функциональных тестов с агентами, автоматизацией или отладчиками см. Тестирование и CI.
