写过前端的人都踩过这个坑——每次配 ESLint + Prettier 都要装两个包、配两套文件、跑两遍 CI,今天一个 Rust 二进制把这件事彻底原生化了

写过前端的人都踩过这个坑——每次配 ESLint + Prettier 都要装两个包、配两套文件、跑两遍 CI,今天一个 Rust 二进制把这件事彻底原生化了。

npm install eslint prettier eslint-config-prettier @typescript-eslint/parser @typescript-eslint/eslint-plugin
# 四个包,两个配置文件,两套规则,一堆版本冲突

这就是 2018 到 2025 年间前端项目的标准姿势。但到了 2026 年,这个姿势已经被一个 Rust 二进制彻底翻篇了——它叫 Biome。

一个 Biome,替代两个工具

Biome( 前身是 Rome)是一个用 Rust 写的 JavaScript/TypeScript 一站式工具链:Lint + 格式化 + Import 排序,一个 CLI,一个配置文件 biome.json,全搞定。

它的核心主张很简单:一个工具替代 ESLint + Prettier,配置少 10 倍,速度快 40-80 倍。

实际跑出来的数字是什么水平?有人在 10000 个文件的代码库上测过:

  • ESLint:45.2 秒
  • Biome:0.8 秒

差了 56 倍。

为什么差这么多? ESLint 是跑在 Node.js 上的,每次 lint 都要解析 AST、执行规则、调用插件——插件越加越多,时间也就越来越长。eslint-plugin-import 里的 import/no-cycle 规则甚至能吃掉 70% 的 lint 时间,因为它要建一整张依赖图。

Biome 用 Rust 写的,arena allocator + 零拷贝字符串处理,没有 JS 的运行时开销,也不需要调用 TypeScript 编译器。快是架构决定的,不是优化出来的。

v2 补上了最后一块短板

光快不够,还得好用。Biome 之前的版本在规则数量上比不过 ESLint,缺的恰恰是最有用的那些——TypeScript 类型感知的规则。

Biome v2 引入了自研的类型推断引擎,在不调用 tsc 的前提下实现类型感知 lint。noFloatingPromisesnoImplicitAny 这些规则,Biome v2 能覆盖 ~75% 的 typescript-eslint 规则场景,但速度依然快 20 倍。

同时规则总数也上去了:v2.3(2026 年 1 月)已经有 491 条 lint 规则,支持 React、Next.js、Solid 框架域(domain),还内置了 Import 排序和 JSON/CSS/GraphQL 格式化。

迁移成本:三个命令

从 ESLint + Prettier 迁到 Biome,官方给了自动迁移工具:

# 安装
npm install --save-dev @biomejs/biome

# 自动迁移 ESLint 配置
npx @biomejs/biome migrate eslint --write

# 检查并修复
npx @biomejs/biome check --write ./src

生成的 biome.json 大概长这样:

{
  "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json",
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "correctness": {
        "noUnusedVariables": "error"
      }
    }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "lineWidth": 100
  },
  "assist": {
    "enabled": true,
    "actions": {
      "source": { "organizeImports": "on" }
    }
  }
}

.eslintrc.prettierrceslint-config-prettier 全删了,一个文件管所有。

什么时候该迁,什么时候先别动

Biome 不是万能的。它的硬伤有两个:没有插件生态(不支持和 eslint-plugin-tailwindcss、eslint-plugin-a11y 这类自定义插件集成),以及不支持 Vue/Svelte 文件

所以:

  • 新项目、React/Next.js/TypeScript 技术栈 → 直接上 Biome,零负担
  • 已有大型 ESLint 配置、依赖很多插件 → 先并行引入 Biome,逐步替换,别一口气全删
  • Vue/Svelte 项目 → 继续 ESLint,等 Biome 支持

GitHub 上 Astro、Vercel、Discord、Slack、Node.js 官方项目都在用,AWS、Google、Microsoft、Cloudflare 都有生产级部署——企业采用已经不是问题。

CI 怎么接

本地开发:biome check --write(lint + format + import 排序,自动修复)

CI 模式:biome ci .(只读,不写文件,发现问题 exit 1)

# GitHub Actions 示例
- name: Lint
  run: npx @biomejs/biome ci .

不用再跑 eslint . && tsc --noEmit && prettier --check,一个命令全搞定,CI 时间从分钟级直接掉到秒级。


下一步: 如果你项目还在用 ESLint + Prettier,花 10 分钟跑一下 npx @biomejs/biome migrate eslint --write,感受一下什么叫”配置少 10 倍,速度快 40 倍”。

评论区

0 条评论

登录后可评论。

铁锈·Rust工具链 13 阅读