找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3582

积分

0

好友

498

主题
发表于 13 小时前 | 查看: 2| 回复: 0

昨天,Oxc 项目正式发布了 Oxfmt Beta

随后,Vue 作者尤雨溪Evan You)在社交平台转发并评论道:

尤雨溪在社交平台转发Oxfmt Beta发布消息的截图

冲啊!自从在工作流程中使用它之后,我就再也不用考虑格式问题了。速度太快了,几乎感觉不到这一步的存在。

这一评价立刻引发了社区讨论:Prettier 的挑战者,真的出现了吗?

Oxfmt 是什么?

OxfmtOxc 生态系统中的代码格式化工具

Oxc项目官方发布的Oxfmt Beta公告截图

Oxc 是一个用 Rust 编写的 JavaScript 编译工具链,其目标是打造高性能完整的一站式前端基础设施。

这次发布的 Oxfmt Beta,主打以下几个核心特性:

  • 100% Prettier 兼容性
  • ✅ 支持更多文件格式
  • Tailwind CSS 集成
  • Import 语句自动排序
  • package.json 自动排序
  • 嵌入式语言(如Vue SFC、JSX中的CSS)格式化
  • Node.js API
  • ✅ 支持 --migrate-prettier 迁移命令
  • ✅ 完整的 IDE 支持

简单来说,Oxfmt 的野心在于:它既想完全兼容现有的 Prettier 生态与配置,又试图在性能功能上实现超越。

尤雨溪为何感叹“太快了”?

“格式化步骤变得隐形”——这是尤雨溪给出的评价。

对于一个代码格式化工具来说,这无疑是极高的赞誉。因为这类工具在我们的工作流中属于高频触发项

  • 保存文件时自动运行
  • 提交代码前在Git钩子中运行
  • 持续集成(CI) 流水线中会执行检查
  • 整个团队协作都依赖于统一的格式规范

工具的响应速度直接影响开发体验:如果慢 300ms,你会有所察觉;如果慢 800ms,可能开始感到烦躁;如果超过 1s,你或许会考虑关闭它。

而“隐形”的含义正是:快到你完全意识不到这个步骤的存在。这正是基于 Rust 的工具链(如 Oxc)正在挑战乃至取代传统 JavaScript 工具链的核心优势之一。

如何在 Vue3 项目中快速接入 Oxfmt?

下面提供一套可以直接复用的接入方案。

第一步:安装

在你的 Vue3 项目根目录下执行:

npm install -D @oxc/oxfmt
# 或使用 pnpm
pnpm add -D @oxc/oxfmt

安装完成后,可以检查版本确认安装成功:

npx oxfmt --version

第二步:执行首次全量格式化

npx oxfmt . --write

说明

  • . 表示对当前目录下的所有目标文件进行格式化。
  • --write 参数表示将格式化结果直接写回源文件,而不是仅输出到控制台。

建议在项目初次接入时,执行一次全量格式化,确保代码库格式统一。

第三步:将命令集成到 package.json 脚本中

package.jsonscripts 字段中添加:

{
  "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

然后添加 Git 的 pre-commit 钩子:

npx husky add .husky/pre-commit "npx lint-staged"

最后,在 package.json 中配置 lint-staged

{
  "lint-staged": {
    "*.{js,ts,vue,json,css,scss,md}": [
      "oxfmt --write"
    ]
  }
}

这样配置的好处

  • ✔ 仅格式化本次提交所改动的文件,效率极高。
  • ✔ 得益于 Rust 的性能,几乎是秒级完成。
  • ✔ 对开发流程无感,提升体验。

第五步:在 VS Code 中启用保存时自动格式化

安装 Oxfmt 的官方 VS Code 扩展后,在项目或全局的 .vscode/settings.json 文件中添加以下配置:

{
  "editor.formatOnSave": true,
  "[vue]": {
    "editor.defaultFormatter": "oxc.oxfmt"
  },
  "[javascript]": {
    "editor.defaultFormatter": "oxc.oxfmt"
  },
  "[typescript]": {
    "editor.defaultFormatter": "oxc.oxfmt"
  }
}

⚠ 注意:请记得在设置中关闭 Prettier 作为相关语言的默认 formatter,以避免扩展冲突。

第六步:从现有 Prettier 配置平滑迁移

如果你的项目已经使用了 Prettier,Oxfmt 提供了便捷的迁移命令:

npx oxfmt --migrate-prettier

该命令会自动读取你项目中的 Prettier 配置文件(如 .prettierrc),并将其转换为 Oxfmt 的配置。之后,再执行一次全量格式化即可:

npx oxfmt . --write

最后,你可以安全地移除项目中对 prettier 的相关依赖。

Oxfmt 会取代 Prettier 吗?

现在就断言 Oxfmt 将“完全取代” Prettier 还为时过早。但一个明显的趋势是,前端底层的工具链正在加速 Rust 化。

从打包工具(如 esbuild, rspack),到编译工具(如 swc),再到代码检查与格式化工具(如 biome, oxc),Rust 带来的性能优势实在太显著。

更重要的是,Oxc 并不只是一个 formatter。它定位为一套完整的工具链,涵盖了 parser(解析器)、linter(代码检查器)、transformer(转换器)和 formatter(格式化器)。未来的理想状态可能是:一套统一的 AST(抽象语法树)贯穿编译、Lint、Format 全流程

如果这条技术路线能够走通,那么对 Prettier 而言,面临的将不仅仅是“被一个更快的格式化工具替代”,而可能是一次“前端工具链架构的整体升级”。

核心价值:追求极致的开发体验

尤雨溪的评价,实际上揭示了一个更深层次的趋势:优秀工具的终极目标,是让用户忘记其存在本身

当代码格式化快到“隐形”,当保存文件毫无延迟感,当提交代码无需等待格式检查,开发者的心流体验便得以完整保存。这种对“无感”体验的追求,正是前端工具演进的重要方向之一。

Oxfmt 的出现,尤其是获得像尤雨溪这样的 Vue.js 生态核心人物背书,无疑为这场变革增添了重量级砝码。其底层由 Rust 驱动,并通过完善的 Node.js API 提供接入能力,技术栈的选择也颇具前瞻性。

写在最后

目前,Oxfmt 仍处于 Beta 测试阶段。但当像尤雨溪这样的技术领袖亲自为其站台,当基于 Rust 的高性能工具链开始系统性重构前端开发的基础设施,当“快至无感”成为评判工具的新标准时,我们可以确定:

前端代码格式化领域,已经迎来了一个强有力的新选手,并可能由此开启一个新时代。对开发者而言,多一个高性能、兼容性好的选择总是一件好事。如果你对前沿工具链感兴趣,不妨在 云栈社区 的相关板块与其他开发者交流探讨。

  • Oxfmt 快速使用指南https://oxc.rs/docs/guide/usage/formatter/quickstart.html



上一篇:ESP32-S3-BOX-3开发实战:打造免干扰的桌面专注力设备
下一篇:提升代码清晰度:在JavaScript表达式中用好括号明确运算顺序
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-26 17:33 , Processed in 0.399107 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表