문서
/

실행 환경 호환성

실행 환경 호환성

실제 실행 환경에 맞춰 target을 선택하세요. Browser와 Node 빌드의 방어 기능은 다를 수 있으며 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에서는 아무 동작도 하지 않거나 예외를 던집니다). 브라우저 전용 API에 의존하는 일부 vmSelfDefending 방어 기능, 즉 헤드리스 브라우저 탐지, iframe 기반의 깨끗한 realm 복구, 인스펙터/DOM 검사 방지 기능은 이 타깃에서는 생성되지 않습니다.
  • service-worker - Service Worker 컨텍스트입니다. windowdocument가 없고 self 전역이 다릅니다.
  • userscript - 사용자 스크립트 관리자 샌드박스입니다(예: Tampermonkey). vmSelfDefending 방어 기능이 이에 맞게 조정됩니다. 난독화 도구 v6.9.0+ 가 필요합니다.
  • bytenode - bytenode.jsc로 컴파일할 코드를 위한 타깃입니다. 난독화 도구 v6.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를 참고하세요.