Skip to content

变量名混淆

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_0slot_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,
    },
  },
});