Манглинг
Минификатор Oxc поддерживает манглинг имён переменных и приватных полей классов.
Включено по умолчанию; отключить можно опцией mangle: false.
Переменные верхнего уровня
Для кода не в виде модуля переменные верхнего уровня по умолчанию не манглятся. Включить манглинг можно опцией mangle.toplevel: true.
js
// input
var foo = 1;
// output
var e = 1;js
// Example
import { minify } from "oxc-minify";
const result = await minify("lib.js", code, {
module: false, // non-module code
compress: {
mangle: {
toplevel: true,
},
},
});Сохранение значений свойства name
Манглинг может изменить значения свойства name у функций и классов. Сохранить исходные значения можно опцией mangle.keepNames.
js
// input
var foo = function () {};
// output
var foo = function () {};js
// Example
import { minify } from "oxc-minify";
const result = await minify("lib.js", code, {
compress: {
mangle: {
keepNames: true, // shorthand of { function: true, class: true }
},
},
});Опция compress.keepNames
При включении этой опции имеет смысл также включить compress.keepNames.
Отладка манглера
Для отладки манглера включите mangle.debug: имена станут slot_0, slot_1, …
js
// input
var foo = 1;
// output
var slot_0 = 1;js
// Example
import { minify } from "oxc-minify";
const result = await minify("lib.js", code, {
compress: {
mangle: {
debug: true,
},
},
});