你以为格式化只能靠 Prettier?今天 oxfmt 把这件事用 30 倍速度彻底翻了

每次在 VS Code 保存时等 Prettier 格式化跑完,一个几千行的文件要卡上好几秒——你以为是文件大,其实就是 JavaScript 写的格式化器天花板就在那里。Rust 写的 oxfmt 出来了,30 倍 Prettier,3 倍 Biome,现在可以直接跑生产了。

什么是 oxfmt

oxfmt 是 Oxc 项目(The JavaScript Oxidation Compiler)的格式化器,Prettier 兼容,Rust 实现。2026 年 9 月 6 日刚发了 v0.67.0,跟着 oxlint v1.82.0 一起稳定迭代了大半年。

核心数据:格式化速度比 Prettier 快 30 倍,比 Biome 快 3 倍。可以直接跑 npx --yes oxfmt@latest,不需要任何配置文件。

实测数据

oxc 官方博客里有完整的 Benchmark:在 MacBook Pro M3 Max 上解析 TypeScript 文件:

工具 耗时
OXC 26.3ms
SWC 84.1ms
Biome 130.1ms

格式化这边,官方说法是 Prettier 耗时如果是 10 秒,oxfmt 大约 0.33 秒,差距主要来自两方面:Rust 的内存布局更紧凑,没有 GC 停顿,而且 Oxc 的 AST 解析器本身比 Prettier(基于 Babylon/meriyah)快 3 倍。

怎么用

开箱即用,不需要任何 .prettierrc

npx --yes oxfmt@latest

它会自动识别项目里的 JS/TS/JSON/CSS 并格式化。如果你想迁移 Prettier 配置,Oxc 官方出了 Skill:

npx skills add https://github.com/oxc-project/oxc --skill migrate-oxfmt

运行 /migrate-oxfmt 就能把已有的 Prettier 配置转成 oxfmt 的格式。

支持的格式:JavaScript、TypeScript、JSX、TSX、JSON、JSONC、YAML、Markdown(实验性)、CSS(实验性)。

Prettier 生态的坑,oxfmt 能避开吗

Prettier 的核心价值不只是格式化速度,而是生态——几百个插件、ESLint 集成、各框架维护的 Preset。oxfmt 目前走的是 Prettier 兼容路线,理论上你的 .prettierrc 能直接复用,不需要重新配规则。

但它确实不支持 Prettier 的插件体系,这是最主要的取舍。如果你用的是社区维护的 Prettier 插件(比如 prettier-plugin-tailwindcss),迁移前要确认 oxfmt 的 Tailwind class 排序支持是否满足需求——根据官方文档,Tailwind class 排序已经内置了,不需要额外插件。

适合谁

适合的场景:

  • 大型 monorepo,每次 CI 构建都要跑格式化,耗时累积明显
  • VS Code 保存时感觉慢,尤其是 TypeScript 项目
  • 已经在用 Oxc 其他工具(oxlint/oxc-transform),想统一工具链

暂时不适用的:

  • 高度依赖 Prettier 插件生态的项目
  • 需要 Prettier 的 ARN/IR 格式输出(oxfmt 输出格式是固定风格)

下一步

如果你在 Vite/Rolldown 项目里,已经在用 Oxc 系的工具链,装一个 oxfmt 试试:

npx --yes oxfmt@latest

把项目里的格式化耗时跑一遍,看看实际差距。如果你是 Prettier 重度用户,可以先只在 CI 里跑,保留本地 Prettier,两边对比一段时间再决定要不要全面切换。


Oxc 这条工具链的速度已经不用证明了——Rolldown 比 Rollup 快 10-30 倍,Oxlint 比 ESLint 快 50-100 倍,现在 oxfmt 也补上了格式化这一环。整个 JS 工具链的 Rust 化进程,比多数人感知的要快得多。

评论区

0 条评论

登录后可评论。

铁锈·Rust工具链 47 阅读