文档
/
基础混淆
/

条件注释

条件注释

您可以使用特殊注释,对代码中的特定部分选择性地禁用混淆。

JavaScript

当您需要让特定的配置块或版本字符串在输出中保持可读,同时又不想放弃对文件其余部分的混淆时,这一功能非常有用。

混淆器从输入中读取这些注释,因此在混淆之前运行的任何构建步骤都要保留它们;如果压缩工具先剥离了注释,这些注释就会丢失。

“disable” 实际跳过了什么

被禁用的区域只会跳过对其中节点的 直接 转换,即在声明处对声明进行的混淆。子级 转换仍然会生效,因此,如果某个标识符已在别处的声明处被重命名,禁用块中对它的引用依然会被重命名:

JavaScript

如果需要让某个名称在所有出现的位置都保持可读,只禁用一个代码块是不够的;还要让它的声明也处于混淆区域之外,或者使用 reservedNames。

在 vmObfuscation 下,disable 只对整个函数起作用。 位于禁用区域内的函数不会被虚拟化。嵌套在被虚拟化函数内部的禁用区域仍会被编译为字节码,与该函数体的其余部分一起,可读的形式不会保留下来。只有 在根层级(任何被虚拟化的函数之外)被禁用的代码才会在输出中保持原样。