Biome 常被介绍成一个用 Rust 写的、可以替掉 Prettier 加 ESLint 的快工具。这个说法没有错,放在 2026 年已经显得太小。更合适的读法,是把它看成一层正在收拢前端代码清洁流程的统一语法面:formatter、linter、assist actions、导入整理、迁移命令、共享的编辑器接入,以及把这些东西一起跑起来的 check 入口,都被压进同一条工具链里。[1][3][4][5] 这里的重点,并非为了“合并工具”而合并工具,而是前端团队确实一直在为这些工具之间的接缝付费。它们解析同样的文件,默认值并不一致,命令行与编辑器里暴露出来的修复路径也互相重叠。

也因此,Biome 现在的重要性,已经超过当年那个“很快的 formatter”故事。官方 v2 发布把项目推成了一套带多文件分析能力、带类型感知 lint 的系统,而且并不依赖 TypeScript 编译器;后续几个版本又继续沿着同一方向扩张,没有散成无关的功能拼盘。[3][7] 2026 路线图写得很清楚:项目在 v2 这一代里加入了 project rules、GritQL 插件、嵌套配置与 monorepo 支持,月下载量已经超过 1500 万,同时还在继续推进跨语言分析与更强的 IDE 能力。[6] 也就是说,Biome 现在要求外界评估的,不再只是 Prettier 对比基准,而是一条前端工具链边界本身。

配图说明:题图没有用 logo、性能图或编辑器截图,而选了一张真实的维护者肖像。这个选择合适,因为本文关心的是项目形状与维护能力:Biome 是否真能在不断扩张表面的同时,继续守住内聚性与速度。[10]

这个项目到底是什么

Biome 首页对自己的产品定义很直接。它把自己叫作 “one toolchain for your web project”,随后把 formatting、linting 与一体化的 check 命令排成一条连续流程,而并非若干并排摆放的工具。[1] formatter 文档则把方法论继续压实:Biome 是一套有主张的 formatter,选项面故意做得很小,明确继承了 Prettier 那种“别把风格争论重新变成配置争论”的思路。[2] 读到这里,项目的类型已经很清楚。Biome 并不想长成一个通用构建系统,也不想接管包管理。它想接管的是 web 代码的 parse-diagnose-fix 循环,并且用足够强的判断,把配置蔓延尽量挡在外面。[1][2]

再往下看 linter 与 assist,这条边界会更清楚。首页把 linter 描述为一套面向 JavaScript、TypeScript、JSX、CSS 与 GraphQL 的高性能规则系统,当前有 481 条规则,来源包括 ESLint、TypeScript ESLint 以及其他规则来源。[1] assist 文档则专门划出另一条线:assist actions 总是带代码修复,它们的职责是改善代码质量与开发体验,可以在编辑器保存时执行,也可以通过 CLI 强制执行,而 check 依旧是总入口。[4] 这件事很关键,因为 Biome 做的并不只是把 formatter 和 linter 打包放在一起。它要做的是让修复、重排、组织这类动作也留在同一层分析表面上。[1][4]

为什么它在 2026 更像一个成熟项目

真正的转折点发生在 Biome v2。发布文章把它定义成第一套不用依赖 TypeScript 编译器、就能提供类型感知规则的 JavaScript / TypeScript linter,并给出了一条具体的早期数字:基于新推断引擎的 noFloatingPromises 规则,在他们的初步测试里,能覆盖 typescript-eslint 大约 75% 的同类检测场景,而且性能代价低得多。[3] 这条数字需要带着边界来读,因为同一篇文章也明确写了,这些早期数据依赖用例,后续还要靠更多真实项目验证。[3] 但它揭示出来的架构变化已经足够重要。Biome 不再只是单文件语法工具,它现在有了多文件分析路径、scanner 行为、module graph 感知,以及 project rules 这类能力,形态已经明显超过“快 formatter 加基础 lint”。[3]

后续版本沿着同一方向继续推进。Biome 2.4 带来了 JavaScript 模板字面量里的嵌入式 CSS 与 GraphQL 格式化 / lint,加入了 15 条 HTML 可访问性规则,也把 Vue 与 Svelte 的解析与格式化支撑继续往前推。[7] 2026 路线图同时承认,scanner 与 workspace 这条路也带来了调试困难、某些用户遇到的内存泄漏,以及大型 monorepo 里扫描边界控制不足的问题。[6] 这种承认本身就是一个正面信号。维护者没有把“一条工具链”讲成没有成本的神话,而是把从单文件 formatter 走向项目感知系统所引入的负担摆到台面上,再通过 opt-in project rules 与更可管理的 workspace 方案去收束风险。[3][6]

采用路径比 ESLint 迁移轻,但它并非魔法

Biome 最强的一点,在于它把迁移本身做成了产品的一部分。迁移指南给了专门的 ESLint 与 Prettier 子命令,支持 legacy 与 flat 两种 ESLint 配置格式,支持插件加载、extends.eslintignore,也能把许多 Prettier 设置搬进 Biome 配置里。[5] 对那些想削减工具数量、又不想手工重写整张规则映射表的团队来说,这是一种很实在的工程收益。

但同一份迁移指南也把不匹配边界写得很清楚。Biome 从来没有承诺与 ESLint 或 Prettier 完全同构;有些规则行为本来就会偏离,有些选项被故意省掉,Node.js 仍然需要参与配置解析与插件链加载,某些共享配置若带循环引用,也会让迁移失败。[5] 所以它最容易落地的场景,是代码库本身更想减少工具数量、统一编辑器与 CI 行为、把常见的 lint 与 format 工作压进同一套栈里;它不那么轻松的场景,则是项目深度依赖一长串特化 ESLint 插件、非常细的规则开关,或者语言覆盖早已超出 Biome 目前明确支持的边界。[1][5][11]

它最适合的是想减少接缝的仓库,并非追求无限可塑性的仓库

Biome 最有说服力的用户,通常是一支前端或全栈 web 团队,已经受够 formatter、linter、导入整理、保存时自动修复、配置迁移这些事情之间的协调税。[1][4][5] 在这种环境里,Biome 的真正产品并非某一个单点功能,而是一套统一的 parse-facing routine:它能格式化坏掉的代码、发出诊断、执行 assist 修复,并且沿着同一套编辑器与 CLI 路径运行。[1][4] 首页仍然把速度与 97% 的 Prettier 兼容度摆在显眼位置,这当然有用,不过它更大的作用是降低迁移心理成本,让团队不用先把“集成式栈一定更慢”当成前提。[1]

反过来看,不匹配边界也同样重要。若一个仓库把 ESLint 当成开放平台来用,依赖大量细碎插件与极深的规则定制,Biome 这种更有主张、表面更收敛的系统,就会显得拘束而并非解放。[5] 若你的 monorepo 对扫描边界与调试路径要求非常严,路线图自己也承认这部分还在打磨。[6] 若代码库远远超出 web 语言这条主线,Biome 的聚焦就会从优点变成限制。项目介绍只有把“不适合谁”也讲出来,才有意义。Biome 的这个“不”,就是它用更紧的集成回路,交换掉了那种几乎没有边界的灵活性。

维护信号与第一轮试点

截至 2026-04-15T18:04:41Z UTC,GitHub API 显示 biomejs/biome 仓库有 24,377 stars、964 forks、468 个 open issues,最近一次 push 时间是 2026-04-15T15:58:28Z。[8] 发布节奏也很活跃:v2.4.12 发布于 2026-04-14,前面还有 2026-04-09v2.4.11,以及 2026-03-30v2.4.10。[9] 这些数字当然不能替团队做采用决定,但它们足以说明,Biome 并非一个停在概念层的“整合想法”,而是一条还在持续受压、持续被维护的项目线。

最有信号的试点方式,也没有必要一开始就做成“全量替换运动”。找一个前端包,先跑迁移命令,让 Biome 接管 formatting、基础 lint,再配上少量 assist actions 的保存时执行;同时保留一张很短的清单,记录哪些规则或插件还暂时离不开旧栈。最后用“接缝有没有变少”来评估结果:配置文件是并非更少了,编辑器与 CI 的分歧是并非更少了,修复动作是并非更少打架了。[4][5][11]

这才是 2026 年读 Biome 的合适方式。它已经不只是“一个很快的 Rust JavaScript 工具”,而是一场严肃的 OSS 尝试,试图让前端代码清洁重新回到一套系统内部,同时也承担这条主张带来的全部工程纪律。[1][3][6][7]

来源

  1. Biome 首页——工具链总览、支持语言、check 命令、97% Prettier 兼容度表述,以及当前规则规模。
  2. Biome formatter 文档——有主张的 formatter 哲学、刻意收窄的选项面,以及共享的 CLI / 配置行为。
  3. Biome 博客,《Biome v2 - codename: Biotype》——不用 tsc 的类型感知 lint、多文件分析、scanner 行为、插件、assist,以及 HTML formatter 进度。
  4. Biome assist 文档——assist action 的语义、编辑器保存时接入,以及通过 check 做 CLI enforcement 的方式。
  5. Biome 指南,《Migrate from ESLint and Prettier》——迁移子命令、基于 Node 的配置加载,以及明确写出的兼容边界。
  6. Biome 博客,《Roadmap 2026》——v2 时代的成果、1500 万月下载量、scanner / workspace 痛点,以及当前路线方向。
  7. Biome 博客,《Biome v2.4 - Embedded Snippets, HTML Accessibility, and Better Framework Support》——嵌入式 CSS / GraphQL 支持、15 条 HTML 可访问性规则,以及 Vue / Svelte / Astro 改进。
  8. biomejs/biome 的 GitHub API 快照——文章写作时的 stars、forks、open issues 与最近 push 时间。
  9. Biome GitHub releases——最近几个 v2.4.x 版本的发布节奏与日期。
  10. Arend van Beelen jr. 的 GitHub 个人页——本文题图所用维护者肖像的来源页面。
  11. LogRocket,《Biome adoption guide: Overview, examples, and alternatives》——一篇来自外部媒体的采用综述,讨论 Biome 在前端项目里的整合吸引力与边界。