Skip to content

Манглинг

Минификатор 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,
    },
  },
});