Oxc Minifier Alpha
我们很高兴宣布 oxc-minify 的首个 alpha 版本发布。
尽管目前尚未实现一些高级压缩技术,但当前版本在性能和压缩体积方面已超越 esbuild,如 minification-benchmarks 所展示。
在 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 (不启用压缩) | -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 的未来。
因此,对我们而言至关重要的是:
- 继续实现高级压缩技术,例如常量内联和无用代码移除。
- 加强并扩展我们的测试基础设施,确保其达到生产就绪状态。
致谢
感谢 @sapphi-red 对压缩器的改进,特别是先进的符号压缩算法,这是 esbuild 所缺乏的功能。

