Oxc Minifier Alpha
oxc-minify へのアルファ版リリースを発表し、嬉しく思っています。
高度な最適化技術がまだ一部不足しているものの、現在のバージョンは minification-benchmarks の実証結果により、esbuild と比較してパフォーマンスおよび圧縮サイズの両面で優れています。
typescript.js における広く使われている最適化ツールとの比較:
| Artifact | 元のサイズ | 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 (no compress) | -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 に組み込まれ、その標準的な最適化ツールとして採用される予定です。 さらに、Rolldown は 将来の Vite となる ことが予定されています。
したがって、以下の点に重点を置く必要があります:
- 定数インライン展開や不要コード削除などの高度な最適化技術を継続的に実装すること。
- テストインフラを強化・拡張し、本番環境での利用に耐えうる状態にすること。
謝辞
最適化ツールの改善、特に esbuild にはない高度なシンボル最適化アルゴリズムの改善に貢献してくださった @sapphi-red に感謝します。

