Skip to content

Mangling

Oxc Minifier는 변수 이름과 개인 클래스 필드의 명칭 변경을 지원합니다.

이 기능은 기본적으로 활성화되어 있으며, 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_0, slot_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,
    },
  },
});