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