你以为格式化只能靠 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 化进程,比多数人感知的要快得多。
评论区
登录后可评论。