混淆
Oxc 压缩器支持对变量名和私有类字段进行混淆。
此功能默认启用,可通过将 mangle 选项设置为 false 来禁用。
顶层变量
对于非模块代码,顶层变量默认不会被混淆。你可以通过将 mangle.toplevel 选项设置为 true 来启用顶层变量的混淆。
js
// 输入
var foo = 1;
// 输出
var e = 1;js
// 示例
import { minify } from "oxc-minify";
const result = await minify("lib.js", code, {
module: false, // 非模块代码
compress: {
mangle: {
toplevel: true,
},
},
});保留 name 属性值
混淆变量名可能会改变函数/类的 name 属性值。你可以通过启用 mangle.keepNames 选项来保留原始的 name 属性值。
js
// 输入
var foo = function () {};
// 输出
var foo = function () {};js
// 示例
import { minify } from "oxc-minify";
const result = await minify("lib.js", code, {
compress: {
mangle: {
keepNames: true, // 等同于 { function: true, class: true }
},
},
});compress.keepNames 选项
启用此选项时,你可能还希望启用 compress.keepNames 选项。
调试混淆器
要调试混淆器,可以启用 mangle.debug 选项。当此选项启用时,混淆器将使用 slot_0、slot_1……作为变量名。
js
// 输入
var foo = 1;
// 输出
var slot_0 = 1;js
// 示例
import { minify } from "oxc-minify";
const result = await minify("lib.js", code, {
compress: {
mangle: {
debug: true,
},
},
});