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 sepertibrowser, tetapi keluarannya tidak menggunakaneval(). Gunakan bila halaman target memiliki Content Security Policy yang melarangeval/unsafe-eval.node- lingkungan Node.js. Opsi khusus peramban dinonaktifkan (opsi tersebut memerlukanwindow/documentdan tidak akan berpengaruh atau justru melempar error di Node). Beberapa pertahananvmSelfDefendingyang 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 adawindow, tidak adadocument, serta globalselfyang berbeda.userscript- sandbox pengelola userscript (mis. Tampermonkey). PertahananvmSelfDefendingdisesuaikan dengan konteks tersebut. Memerlukan obfuscator v6.9.0+.bytenode- untuk kode yang akan dikompilasi menjadi.jscdengan 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.
