使用javascript-obfuscator浏览器版时require/obfuscate未定义问题求助
解决浏览器环境下javascript-obfuscator调用错误问题
错误原因分析
- 第一种写法报错
require() is not defined:require()是Node.js专属的模块导入语法,浏览器环境本身不支持这个方法,所以不能用这种方式引入库。 - 第二种写法报错
obfuscate() is not defined:通过CDN加载index.browser.js后,库会将API挂载到全局的JavaScriptObfuscator对象上,并非直接暴露obfuscate全局函数,所以直接调用会找不到方法。
正确的浏览器端调用代码
<script src="https://cdn.jsdelivr.net/npm/javascript-obfuscator/dist/index.browser.js"></script> <script> var obfuscationResult = JavaScriptObfuscator.obfuscate( ` function hi() { console.log("Hello World!"); } hi(); `, { compact: false, controlFlowFlattening: true, controlFlowFlatteningThreshold: 1, numbersToExpressions: true, simplify: true, stringArrayShuffle: true, splitStrings: true, stringArrayThreshold: 1 } ); console.log(obfuscationResult.getObfuscatedCode()); </script>
补充说明
Node.js环境才需要用require('javascript-obfuscator')导入库;浏览器环境下直接通过全局的JavaScriptObfuscator对象访问API即可。
内容的提问来源于stack exchange,提问作者Genisys Mythic
相关产品推荐
相关产品推荐

