Skip to content

Oxc Minifier Alpha


我们很高兴宣布 oxc-minify 的首个 alpha 版本发布。

尽管目前尚未实现一些高级压缩技术,但当前版本在性能和压缩体积方面已超越 esbuild,如 minification-benchmarks 所展示。

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 (不启用压缩)-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-minify 正在被集成进 Rolldown 作为其内置压缩器,而 Rolldown 将成为 Vite 的未来

因此,对我们而言至关重要的是:

  • 继续实现高级压缩技术,例如常量内联和无用代码移除。
  • 加强并扩展我们的测试基础设施,确保其达到生产就绪状态。

致谢

感谢 @sapphi-red 对压缩器的改进,特别是先进的符号压缩算法,这是 esbuild 所缺乏的功能。