JavascriptObfuscation配置项
compact (Boolean)
是否将代码压缩为一行。
默认值:false
说明:如果设置为 true,则会将代码压缩成单行,去除换行和空格,减少代码大小。
controlFlowFlattening (Boolean)
是否启用控制流扁平化。
默认值:false
说明:启用后,代码中的条件判断(如 if 语句)会被混淆,控制流变得更加复杂,从而增加代码的不可读性。
controlFlowFlatteningThreshold (Number)
设置控制流扁平化的概率。
默认值:0.75
说明:控制扁平化的强度,范围为 0 到 1。该值越高,控制流的扁平化程度越强。
deadCodeInjection (Boolean)
是否启用死代码注入。
默认值:false
说明:启用后,代码中会注入一些永远不会执行的“死代码”,增加分析代码的难度。
deadCodeInjectionThreshold (Number)
死代码注入的概率。
默认值:0.4
说明:该值控制死代码注入的密度,范围是 0 到 1。值越大,死代码越多。
debugProtection (Boolean)
是否启用调试保护。
默认值:false
说明:启用后,混淆后的代码会防止在开发者工具中进行调试。
debugProtectionInterval (Number)
启用调试保护后,调试保护的时间间隔(毫秒)。
默认值:0
说明:调试保护机制的触发间隔。
disableConsoleOutput (Boolean)
是否禁用 console 输出。
默认值:false
说明:如果启用,所有的 console.log 等输出都会被删除。
domainLock (Array)
域名锁定。
默认值:[]
说明:指定允许执行此代码的域名。只有在这些域名下,代码才会被执行。
domainLockRedirectUrl (String)
域名锁定的重定向 URL。
默认值:'about:blank'
说明:如果代码在未授权的域名上运行,将重定向到指定 URL。
forceTransformStrings (Array)
强制转换的字符串数组。
默认值:[]
说明:指定哪些字符串必须进行混淆处理。
identifierNamesCache (Object or null)
标识符名称缓存。
默认值:null
说明:缓存标识符名称,可以用来加速混淆过程。
identifierNamesGenerator (String)
标识符名称生成方式。
默认值:'mangled'
说明:生成标识符的方式,可选值:
'mangled':随机生成简短的标识符名称。
'hexadecimal':使用十六进制表示名称。
'adaptive':根据代码复杂度自适应选择名称生成方式。
identifiersDictionary (Array)
用于标识符的字典。
默认值:[]
说明:当 identifierNamesGenerator 设置为 dictionary 时,使用此字典来生成标识符。
identifiersPrefix (String)
标识符前缀。
默认值:''
说明:为生成的标识符添加前缀。
ignoreImports (Boolean)
是否忽略模块导入。
默认值:false
说明:设置为 true 时,不会混淆导入的模块代码。
inputFileName (String)
输入文件的文件名。
默认值:''
说明:设置源文件的名称,通常用于构建工具的配置中。
log (Boolean)
是否启用日志记录。
默认值:false
说明:启用后,会在控制台输出混淆过程的日志信息。
numbersToExpressions (Boolean)
是否将数字转换为表达式。
默认值:false
说明:启用后,数字将会被转换为加法、减法等表达式,增加代码的复杂度。
optionsPreset (String)
预设选项。
默认值:'default'
说明:选择一个预设配置。常见值包括 default 和 high-obfuscation,后者具有更高的混淆强度。
renameGlobals (Boolean)
是否混淆全局变量。
默认值:false
说明:启用后,混淆 JavaScript 中的全局变量(如 window、document 等)。
renameProperties (Boolean)
是否混淆对象属性。
默认值:false
说明:启用后,对象的属性名称将被混淆。
renamePropertiesMode (String)
混淆属性名称的模式。
默认值:'safe'
说明:'safe' 模式仅混淆本地属性,'unsafe' 模式混淆所有属性。
reservedNames (Array)
保留不混淆的名称。
默认值:[]
说明:指定的一些名称在混淆过程中不会被改变,通常用于库名称或 API 调用。
reservedStrings (Array)
保留不混淆的字符串。
默认值:[]
说明:指定的一些字符串不会被混淆。
seed (Number)
随机数种子。
默认值:0
说明:用于设置随机生成的标识符和字符串的种子,使得每次混淆结果一致。
selfDefending (Boolean)
是否启用自我保护。
默认值:false
说明:启用后,混淆后的代码会添加一些自我保护机制,防止反向工程和修改。
simplify (Boolean)
是否简化混淆后的代码。
默认值:true
说明:简化代码,使代码结构更简洁,减少冗余。
sourceMap (Boolean)
是否生成源映射文件。
默认值:false
说明:如果启用,将为混淆后的代码生成 .map 文件,方便调试。
sourceMapBaseUrl (String)
设置源映射文件的基准 URL。
默认值:''
说明:指定源映射文件的 URL 地址。
sourceMapFileName (String)
设置源映射文件的名称。
默认值:''
说明:设置源映射文件的文件名。
sourceMapMode (String)
设置源映射的模式。
默认值:'separate'
说明:可选值:
'separate':生成独立的源映射文件。
'inline':将源映射内嵌到生成的代码中。
sourceMapSourcesMode (String)
设置源映射文件中的源代码位置。
默认值:'sources-content'
说明:可以选择:
'sources-content':在源映射中包含源代码内容。
'sources':在源映射中仅包含源代码路径。
splitStrings (Boolean)
是否将字符串拆分为多个片段。
默认值:false
说明:启用后,字符串将被拆分为多个部分,并通过代码拼接恢复。
splitStringsChunkLength (Number)
设置每个字符串片段的最大长度。
默认值:10
说明:定义拆分字符串时,每个片段的最大长度。
stringArray (Boolean)
是否启用字符串数组化。
默认值:true
说明:启用后,所有字符串会被替换为一个字符串数组。
stringArrayCallsTransform (Boolean)
是否转换字符串数组的调用方式。
默认值:true
说明:启用后,代码中对字符串数组的访问将经过转换,使得其调用方式更加复杂。
stringArrayCallsTransformThreshold (Number)
设置字符串数组调用转换的阈值。
默认值:0.5
说明:控制哪些字符串调用需要经过转换。值越高,转换的调用越多。
stringArrayEncoding (Array)
设置字符串数组编码方式。
默认值:[]
说明:指定的编码方式,常用的有 base64 或 rc4。
stringArrayIndexesType (Array)
字符串数组索引的类型。
默认值:['hexadecimal-number']
说明:可选值包括:
'hexadecimal-number':十六进制数字。
'number':数字索引。
stringArrayIndexShift (Boolean)
是否对字符串数组索引进行位移。
默认值:true
说明:启用后,字符串数组的索引将通过位移来增强混淆。
stringArrayRotate (Boolean)
是否旋转字符串数组的元素顺序。
默认值:true
说明:启用后,字符串数组的元素顺序将被旋转,从而增加混淆难度。
stringArrayShuffle (Boolean)
是否对字符串数组的元素进行随机洗牌。
默认值:true
说明:启用后,字符串数组的元素顺序将被随机打乱。
stringArrayWrappersCount (Number)
字符串数组包装器的数量。
默认值:1
说明:定义包装器的数量,用来包装访问字符串数组的代码。
stringArrayWrappersChainedCalls (Boolean)
是否启用链式包装器调用。
默认值:true
说明:启用后,字符串数组的访问会通过链式调用的方式包装。
stringArrayWrappersParametersMaxCount (Number)
每个包装器的最大参数数量。
默认值:2
说明:控制包装器函数的参数数量。
stringArrayWrappersType (String)
字符串数组包装器的类型。
默认值:'variable'
说明:可以选择:
'variable':包装器类型为变量。
'function':包装器类型为函数。
stringArrayThreshold (Number)
字符串数组化的阈值。
默认值:0.75
说明:决定哪些字符串会被转换为字符串数组,范围为 0 到 1。
target (String)
目标平台。
默认值:'browser'
说明:可选值:
'browser':目标为浏览器。
'node':目标为 Node.js。
transformObjectKeys (Boolean)
是否混淆对象的键名。
默认值:false
说明:启用后,对象的键名会被随机化。
unicodeEscapeSequence (Boolean)
是否启用 Unicode 转义序列。
默认值:false
说明:启用后,字符串中的字符会被转义为 Unicode 字符序列。