Skip to content

Mangling

O minificador Oxc faz mangling de nomes de variáveis e de campos de classe privados.

O recurso vem ligado por padrão e pode ser desativado com mangle: false.

Variáveis de topo

Em código que não é módulo, variáveis de nível superior não são renomeadas por padrão. Para incluí-las no mangling, use mangle.toplevel: true.

js
// entrada
var foo = 1;

// saída
var e = 1;
js
// Exemplo
import { minify } from "oxc-minify";

const result = await minify("lib.js", code, {
  module: false, // script, não módulo
  compress: {
    mangle: {
      toplevel: true,
    },
  },
});

Manter valores da propriedade name

O mangling pode alterar os valores de name em funções e classes. Para manter os name originais, use mangle.keepNames.

js
// entrada
var foo = function () {};

// saída
var foo = function () {};
js
// Exemplo
import { minify } from "oxc-minify";

const result = await minify("lib.js", code, {
  compress: {
    mangle: {
      keepNames: true, // atalho para { function: true, class: true }
    },
  },
});

Opção compress.keepNames

Ao ligar essa opção, considere também a opção compress.keepNames.

Depurar o mangler

Para depurar, use mangle.debug: true; o mangler passará a usar slot_0, slot_1, … como nomes.

js
// entrada
var foo = 1;

// saída
var slot_0 = 1;
js
// Exemplo
import { minify } from "oxc-minify";

const result = await minify("lib.js", code, {
  compress: {
    mangle: {
      debug: true,
    },
  },
});