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