Oxc Minifier Alpha
oxc-minify의 알파 릴리스를 발표하게 되어 매우 기쁩니다.
고급 최소화 기술이 아직 부족하지만, 현재 버전은 성능과 압축 크기 측면에서 이미 minification-benchmarks에서 보여준 바와 같이 esbuild를 초월하고 있습니다.
typescript.js에 대해 널리 사용되는 최소화 도구들을 비교한 결과입니다:
| 아티팩트 | 원본 크기 | Gzip 크기 | |
|---|---|---|---|
| typescript v4.9.5 (소스) | 10.95 MB | 1.88 MB | |
| 최소화 도구 | 최소화된 크기 | 압축된 크기 | 시간 |
| @swc/core | 🏆-70% 3.32 MB | 🏆-54% 858.29 kB | 5x2,179 ms |
| oxc-minify | -69% 3.35 MB | -54% 860.67 kB | 🏆 444 ms |
| terser (압축 없음) | -68% 3.53 MB | -53% 879.30 kB | 14x6,433 ms |
| esbuild | -68% 3.49 MB | -51% 915.55 kB | 1x492 ms |
| terser ❌ 시간 초과 | - | - | ⚠️ +10,000 ms |
oxc-minify 사용 예시
typescript
import { minify } from "oxc-minify";
const filename = "test.js";
const code = "const x = 'a' + 'b'; console.log(x);";
const options = {
compress: {
target: "esnext",
},
mangle: {
toplevel: false,
},
codegen: {
removeWhitespace: true,
},
sourcemap: true,
};
const result = minify(filename, code, options);
console.log(result.code);
console.log(result.map);다음 릴리스
oxc-minify는 Rolldown 내부 최소화 도구로 통합되고 있으며, 이로 인해 롤다운은 비트의 미래가 될 예정입니다.
따라서 다음과 같은 점들이 매우 중요합니다:
- 상수 인라인 및 죽은 코드 제거와 같은 고급 최소화 기법을 계속 구현하기.
- 테스트 인프라를 강화하고 확장하여 프로덕션 준비 상태를 확보하기.
감사의 말
최소화 도구 개선에 기여해주신 @sapphi-red에게 감사드립니다. 특히 esbuild가 갖추지 못한 고급 심볼 최소화 알고리즘에 대한 기여에 큰 감사를 드립니다.

