Skip to content

Oxc Minifier Alpha


oxc-minify의 알파 릴리스를 발표하게 되어 매우 기쁩니다.

고급 최소화 기술이 아직 부족하지만, 현재 버전은 성능과 압축 크기 측면에서 이미 minification-benchmarks에서 보여준 바와 같이 esbuild를 초월하고 있습니다.

typescript.js에 대해 널리 사용되는 최소화 도구들을 비교한 결과입니다:

아티팩트원본 크기Gzip 크기
typescript v4.9.5 (소스)10.95 MB1.88 MB
최소화 도구최소화된 크기압축된 크기시간
@swc/core🏆-70% 3.32 MB🏆-54% 858.29 kB5x2,179 ms
oxc-minify-69% 3.35 MB-54% 860.67 kB🏆 444 ms
terser (압축 없음)-68% 3.53 MB-53% 879.30 kB14x6,433 ms
esbuild-68% 3.49 MB-51% 915.55 kB1x492 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-minifyRolldown 내부 최소화 도구로 통합되고 있으며, 이로 인해 롤다운은 비트의 미래가 될 예정입니다.

따라서 다음과 같은 점들이 매우 중요합니다:

  • 상수 인라인 및 죽은 코드 제거와 같은 고급 최소화 기법을 계속 구현하기.
  • 테스트 인프라를 강화하고 확장하여 프로덕션 준비 상태를 확보하기.

감사의 말

최소화 도구 개선에 기여해주신 @sapphi-red에게 감사드립니다. 특히 esbuild가 갖추지 못한 고급 심볼 최소화 알고리즘에 대한 기여에 큰 감사를 드립니다.