Dokumentasi
/

Kompatibilitas runtime

Kompatibilitas runtime

Pilih target sesuai runtime sebenarnya. Build Browser dan Node dapat memiliki perlindungan berbeda; target Browser tidak menggantikan Node. Deklarasi lingkungan, pembatasan domain, dan alat runtime juga harus sesuai konfigurasi.

target

  • browser - Chrome, Firefox, Safari, Edge.
  • browser-no-eval - sama seperti browser, tetapi keluarannya tidak menggunakan eval(). Gunakan bila halaman target memiliki Content Security Policy yang melarang eval/unsafe-eval.
  • node - lingkungan Node.js. Opsi khusus peramban dinonaktifkan (opsi tersebut memerlukan window/document dan tidak akan berpengaruh atau justru melempar error di Node). Beberapa pertahanan vmSelfDefending yang bergantung pada API khusus peramban - deteksi headless browser, pemulihan clean realm berbasis iframe, pemeriksaan anti-inspector/DOM - tidak dihasilkan untuk target ini.
  • service-worker - konteks Service Worker. Tidak ada window, tidak ada document, serta global self yang berbeda.
  • userscript - sandbox pengelola userscript (mis. Tampermonkey). Pertahanan vmSelfDefending disesuaikan dengan konteks tersebut. Memerlukan obfuscator v6.9.0+.
  • bytenode - untuk kode yang akan dikompilasi menjadi .jsc dengan bytenode. Memerlukan obfuscator v6.13.0+.

JavaScript

Nama dan teks sumber fungsi dapat berubah setelah obfuscation. Jangan gunakan .name atau .toString() sebagai data aplikasi yang stabil; gunakan pengenal eksplisit. Nama global publik dapat tetap terlihat sesuai pengaturan.

strictMode

strictMode: null dan strictMode: false tetap mengenali direktif eksplisit, modul ES, dan metode kelas sebagai strict. strictMode: true memperlakukan seluruh input sebagai strict. Sesuaikan dengan runtime akhir; bundler yang menambahkan strict mode sesudah obfuscation dapat mengubah perilaku.

CLI / API

Kompilasi TypeScript atau JSX dan bundel aplikasi sebelum obfuscation terakhir. Pertahankan komentar pemilihan VM hingga tahap tersebut. Jangan minify, format, atau ubah keluaran Self Defending setelahnya. Source map tidak tersedia untuk obfuscation VM dan HTML. Untuk pengujian fungsional yang menggunakan agen, otomatisasi, atau debugger, lihat Pengujian dan CI.