尤雨溪力推的新工具,比Prettier快几十倍
前两天,Oxc项目发布了Oxfmt的Beta版本。vue的作者尤雨溪马上在社交平台转发了这个消息,还说了一句话:"自从用上这个,我再也不用操心代码格式问题了。快得几乎感觉不到它的存在。"
很多开发者看到这个消息都在问:这是要取代Prettier了吗?
Oxfmt到底是什么
Oxfmt是Oxc生态里的一个代码格式化工具。Oxc是用Rust写的JavaScript工具链,目标是做一套完整的前端开发基础设施。
这次发布的Oxfmt Beta版本有几个主要特点:
完全兼容Prettier
支持更多文件类型
内置Import自动排序
package.json自动排序
支持嵌入式语言格式化
提供Node.js api
有迁移Prettier的一键命令
IDE支持完整
简单说,它想做的是:既保留Prettier的格式化风格,又要在性能和功能上都超过Prettier。
为什么说它快得"隐形"
尤雨溪说的"格式化步骤变得隐形",其实是对工具的最高评价。
想想看,格式化工具你一天要触发多少次:
保存文件的时候运行
提交代码之前运行
CI检查的时候运行
团队协作全靠它
如果慢300毫秒,你能感觉到卡顿。如果慢800毫秒,你会有点烦躁。要是超过1秒,你可能就想关掉自动格式化了。
而"隐形"的意思就是:快到你根本意识不到它在干活。
官方测试数据显示,Oxfmt比Prettier快30倍以上,比同样是Rust写的Biome也要快3倍左右。这就是为什么Rust写的工具链正在逐渐取代JavaScript写的旧工具。
Vue3项目怎么用上Oxfmt
下面是一套完整的接入方法,可以直接复制用。
第一步:安装
在项目根目录运行:
npm install -D @oxc/oxfmt
# 或者用pnpm
pnpm add -D @oxfmt装完检查一下版本:
npx oxfmt --version第二步:全量格式化一次
npx oxfmt . --write说明一下:.代表当前目录,--write表示把格式化结果写回文件。第一次接入建议全量跑一遍。
第三步:加到package.json脚本里
{
"scripts": {
"format": "oxfmt . --write",
"format:check": "oxfmt . --check"
}
}这样就能用npm run format一键格式化,用npm run format:check在CI里检查格式。
第四步:提交前自动格式化(推荐)
先安装需要的工具:
npm install -D husky lint-staged
npx husky install添加提交前钩子:
npx husky add .husky/pre-commit "npx lint-staged"然后在package.json里加上:
{
"lint-staged": {
"*.{js,ts,vue,json,css,scss,md}": [
"oxfmt --write"
]
}
}这样做的好处是:只格式化本次要提交的文件,速度飞快,不影响开发体验。
第五步:VS Code保存时自动格式化
先安装Oxfmt官方扩展,然后在项目里的.vscode/settings.json文件添加:
{
"editor.formatOnSave": true,
"[vue]": {
"editor.defaultFormatter": "oxc.oxfmt"
},
"[javascript]": {
"editor.defaultFormatter": "oxc.oxfmt"
},
"[typescript]": {
"editor.defaultFormatter": "oxc.oxfmt"
}
}注意:记得把Prettier从默认格式化工具里关掉,不然会冲突。
第六步:从Prettier迁移过来
如果项目里已经用了Prettier,可以这样迁移:
npx oxfmt --migrate-prettier然后全量格式化一次:
npx oxfmt . --write最后把Prettier相关的依赖删掉就行。
Oxfmt真能取代Prettier吗
现在说"完全取代"还太早。但这个趋势已经很明显了。
看看这几年的变化:esbuild、swc、rspack、biome,再到现在的oxc,前端底层工具正在全面Rust化。性能优势太明显了,这是没办法忽视的。
更关键的是,Oxc不只是一个格式化工具。它是一个完整的工具链:
解析器(parser)
代码检查(linter)
代码转换(transformer)
格式化(formatter)
未来的可能是:同一个语法树,贯穿编译、检查、格式化整个流程。如果这条路走通了,Prettier就不只是被替代,而是被整个架构升级甩在后面。
真正的核心是"消失感"
尤雨溪那句话其实点出了一个很深的道理:好工具的终极目标,是让你忘了它的存在。
当格式化快得察觉不到,当保存文件没有延迟,当提交代码不用等待,开发体验才算是真的上了一个台阶。
写在最后
Oxfmt现在还处于Beta阶段,但有几个信号值得注意:Vue的作者亲自背书,Rust工具链正在重构前端基础设施,"快到隐形"成了新的评价标准。
这些都说明一件事:前端格式化工具,正在进入一个新的时代。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!