Skip to content

Oxc Minifier Alpha


oxc-minify へのアルファ版リリースを発表し、嬉しく思っています。

高度な最適化技術がまだ一部不足しているものの、現在のバージョンは minification-benchmarks の実証結果により、esbuild と比較してパフォーマンスおよび圧縮サイズの両面で優れています。

typescript.js における広く使われている最適化ツールとの比較:

Artifact元のサイズ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 (no compress)-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 に組み込まれ、その標準的な最適化ツールとして採用される予定です。 さらに、Rolldown は 将来の Vite となる ことが予定されています。

したがって、以下の点に重点を置く必要があります:

  • 定数インライン展開や不要コード削除などの高度な最適化技術を継続的に実装すること。
  • テストインフラを強化・拡張し、本番環境での利用に耐えうる状態にすること。

謝辞

最適化ツールの改善、特に esbuild にはない高度なシンボル最適化アルゴリズムの改善に貢献してくださった @sapphi-red に感謝します。