返回项目目录
开发工具精选项目

Biome

以 Rust 构建的 Web 工具链,在一个快速的命令行与编辑器服务中提供格式化、Lint、导入整理和代码修复。

主要语言Rust
开源许可MIT OR Apache-2.0
项目类型开发工具
维护状态活跃维护
OVERVIEW

项目概述

Biome 面向 JavaScript、TypeScript、JSX、TSX、JSON、CSS、GraphQL 等 Web 语言,尝试用统一配置和诊断体验替代常见的 ESLint、Prettier 与导入整理组合。

Biome 是采用 Rust 编写的开源 Web 工具链,源自 Rome 社区的后续工作。它把 Formatter、Linter、Assist、解析器、诊断输出和 Language Server 集成在同一个工具中,可通过一份 biome.json 配置命令行、编辑器与 CI。Biome 可以零配置运行,也提供从 ESLint 和 Prettier 迁移的命令。当前对 JavaScript、TypeScript、JSX、TSX、JSON、CSS、GraphQL 等语言提供稳定能力;Vue、Svelte 与 Astro 已可开箱处理,但官方仍将其标为实验性支持,迁移前应使用真实代码验证。

当前版本2.5.6
实现语言Rust
核心能力Format / Lint / Assist
FEATURES

主要特点

Biome 用共享的解析与诊断基础设施覆盖代码格式、静态检查、批量修复和编辑器反馈。

01

统一 Formatter

同一个二进制可格式化 JavaScript、TypeScript、JSX、TSX、JSON、CSS、GraphQL 等文件,并在多数 JavaScript 场景中保持较高的 Prettier 兼容度。

02

内置 Linter

规则覆盖正确性、可疑代码、性能、安全、可访问性与代码风格,并区分 Info、Warning、Error 和可修复诊断。

03

安全与非安全修复

`--write` 默认应用安全修复,只有显式加入 `--unsafe` 才会执行可能改变语义的重写,便于团队控制自动修改边界。

04

Biome Assist

Assist 提供整理 Imports、排序对象 Key 等 Source Actions,可在命令行或支持 LSP Code Action 的编辑器中运行。

05

单一配置文件

biome.json 或 biome.jsonc 可以统一文件范围、Formatter、Linter、Assist、语言选项、Overrides 和插件配置。

06

增量编辑器体验

官方 VS Code、IntelliJ 与 Zed 扩展可在保存时格式化、显示诊断并应用修复,避免编辑器与命令行使用不同规则。

07

统一 Check 命令

`biome check` 一次执行格式检查、Lint 和 Assist,`biome ci` 则为持续集成提供不会修改文件的检查模式。

08

迁移工具

专用命令可以读取 ESLint 与 Prettier 配置并生成尽可能接近的 Biome 配置,降低现有项目的试用门槛。

09

Monorepo 配置

Root 配置、Overrides、Includes 与嵌套配置可以按包或文件类型调整规则,适合多应用和共享包仓库。

10

GritQL Linter 插件

插件可以匹配项目特定代码模式、报告自定义诊断并建议重写,但能力和生态仍与 ESLint 插件模型不同。

11

独立可执行文件

除包管理器安装外也可使用不依赖 Node.js 的 Standalone Binary,适合非 Node 仓库或精简 CI 环境。

12

一致的诊断输出

Parser、Formatter 与 Linter 共用带源码框、位置和修复提示的诊断系统,本地、编辑器和 CI 更容易对齐。

USE CASES

适用场景

当团队希望减少工具数量、统一本地与 CI 行为,或改善大型前端仓库的检查速度时,Biome 值得评估。

TypeScript Web 应用

React、Node.js、Vite 等项目可用一套配置完成 TSX 格式化、代码检查、Imports 整理和 CI Gate。

大型 Monorepo

统一二进制与配置有助于减少多个工具扫描相同文件的开销,并通过 Includes、Overrides 控制不同包的规则。

新项目工程规范

零配置即可开始,再逐步固定缩进、引号、推荐规则和文件范围,适合快速建立一致的代码质量基线。

ESLint + Prettier 迁移

希望减少依赖、配置冲突和执行步骤的团队,可以先迁移兼容规则,再保留少量 Biome 尚未覆盖的专用检查。

CI 与提交前检查

`biome ci`、`biome check --staged` 或 `--changed` 可用于 Pull Request、Pre-commit 和增量检查流程。

编辑器统一

跨 VS Code、JetBrains 和 Zed 的团队可以共享 biome.json,让保存时格式化和 CI 结果保持一致。

多语言 Web 资源

同一工具可处理 JS/TS、JSON、CSS、GraphQL 等常见文件,减少为每种资源维护独立格式器的需要。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

Biome 擅长的地方

  • Formatter、Linter、Assist 和 Language Server 共享同一工具与配置
  • Rust 实现和原生二进制适合高频编辑器反馈与大型仓库检查
  • 安装依赖少,减少 ESLint、Prettier 与导入插件之间的配置协调
  • 默认推荐规则即可提供可用基线,也能通过 Overrides 精细调整
  • 安全修复与 Unsafe Fix 明确分开,便于在 CI 中控制风险
  • 提供 ESLint 和 Prettier 迁移命令,方便渐进式试用
  • 官方编辑器扩展让保存时格式化、诊断和 Code Action 保持一致
  • 双许可证和独立可执行文件便于不同工程环境采用

需要注意

采用前应考虑的问题

不能覆盖全部 ESLint 插件

依赖框架、测试、GraphQL 或企业自定义 ESLint 插件的项目,迁移后可能缺少等价规则,需要保留部分 ESLint 或重新设计检查。

语言支持范围并不相同

JavaScript、TypeScript、JSON、CSS 等支持较完整,但 Markdown、YAML、SCSS 等仍处于开发或未提供 Lint,不能默认替代所有 Formatter。

Vue、Svelte 与 Astro 仍属实验性

这些文件已能解析、格式化和 Lint,但框架专属语法与跨嵌入语言规则仍有限,官方也提醒可能出现误报或格式差异。

与 Prettier 并非逐字节一致

Biome 有少量有意差异,也尚未覆盖 Prettier 的全部语言和插件。迁移会产生较大格式 Diff 时,应单独提交并锁定版本。

配置模型需要重新理解

Biome v2 的 Includes、Overrides、Assist 与插件结构不同于 ESLint Flat Config,机械翻译容易造成文件遗漏或规则重复。

类型感知规则范围有限

并非所有检查都会像 TypeScript ESLint 的类型化规则那样读取完整 Type Information;关键类型约束仍应由 `tsc --noEmit` 负责。

Unsafe Fix 必须审阅

`--write --unsafe` 可能改变代码语义,不适合未经审阅地在整个仓库或自动提交流程中执行。

插件生态仍较年轻

GritQL 插件适合模式匹配和重写,但与 ESLint 的 JavaScript 插件 API、成熟生态和框架规则覆盖并不等价。

需要固定版本

Formatter 输出和规则可能随版本演进。官方安装示例使用精确版本,团队应让本地、编辑器和 CI 读取同一版本。

Native Binary 影响安装环境

npm 包会按平台安装对应可选二进制;特殊 CPU、旧系统、极简容器或禁用 Optional Dependencies 的环境应先验证。

不要省略 TypeScript 编译检查

Biome 能解析和检查 TypeScript,但它不是 TypeScript Compiler,不能替代项目构建或完整的 `tsc` 类型检查。

QUICK START

快速开始

下面从精确安装版本开始,创建配置、添加脚本与编辑器设置,再接入 CI 和现有 ESLint / Prettier 项目。

1精确安装并初始化
bash
npm install --save-dev --save-exact @biomejs/biome
npx @biomejs/biome init
2配置 Formatter、Linter 与 Imports
json
{
  "$schema": "https://biomejs.dev/schemas/2.5.6/schema.json",
  "files": {
    "includes": ["**", "!**/dist", "!**/coverage"]
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space"
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true
    }
  },
  "assist": {
    "enabled": true,
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "double"
    }
  }
}
3添加项目脚本
json
{
  "scripts": {
    "format": "biome format --write .",
    "lint": "biome lint .",
    "check": "biome check .",
    "check:fix": "biome check --write .",
    "typecheck": "tsc --noEmit"
  }
}
4配置 VS Code 保存操作
json
{
  "editor.defaultFormatter": "biomejs.biome",
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.biome": "explicit",
    "source.organizeImports.biome": "explicit"
  }
}
5从 ESLint 与 Prettier 迁移
bash
npx @biomejs/biome migrate eslint --write
npx @biomejs/biome migrate prettier --write

# 先只检查,不立即修改整个仓库
npx @biomejs/biome check .
6接入 GitHub Actions
yaml
name: Code quality

on:
  pull_request:
  push:
    branches: [main]

jobs:
  biome:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: biomejs/setup-biome@v2
        with:
          version: 2.5.6
      - run: biome ci .
7逐步应用修复并保留类型检查
bash
# 应用安全的格式与代码修复
npx @biomejs/biome check --write .

# 审阅后再决定是否运行非安全修复
npx @biomejs/biome check --write --unsafe .

# Biome 不替代 TypeScript Compiler
npm run typecheck

下一步:先在一个包或一类文件中试运行 `biome check`,审阅格式 Diff 和 Unsafe Fix,再逐步替换现有工具。安装时使用精确版本,保证成员电脑与 CI 输出一致。

ALTERNATIVES

类似项目

TypeScript 与 Vite 是常见的配套开发基础;ESLint、Prettier 和 oxlint 则分别代表可扩展 Lint、专用格式化及高速 Lint 的不同方案。

COMPARISON

Biome vs ESLint + Prettier

Biome 希望以一个高性能工具统一 Formatter、Linter 和代码操作;ESLint + Prettier 则把可扩展静态检查与多语言格式化交给两个成熟工具。两者都能建立可靠规范,但覆盖范围、插件生态和迁移成本明显不同。

比较维度BiomeESLint + Prettier
工具组成单一二进制、配置、诊断和 Language ServerESLint、Prettier 及其配置与集成插件
核心实现Rust 原生工具链主要基于 JavaScript / Node.js
格式化内置 Formatter,高度兼容但不完全等同 PrettierPrettier 语言与插件覆盖更广
Lint内置规则、统一解析器和安全修复ESLint 规则与配置能力成熟、扩展范围广
插件生态GritQL 插件较新,能力边界更明确大量框架、测试、导入和企业自定义插件
类型检查不能替代 tsc,类型感知规则范围有限typescript-eslint 可提供更多类型化规则,同样不能替代构建
语言覆盖聚焦 Web 语言,部分框架和语言仍实验或开发中Prettier 插件覆盖 Markdown、YAML、模板等更多格式
配置复杂度一份 biome.json,默认即可使用更灵活,但需协调 Flat Config、插件与 Prettier
迁移成本提供迁移命令,但可能缺少专用规则或产生格式 Diff现有项目通常已有配置与团队经验
更适合重视速度、统一体验和较少依赖的 Web 项目依赖丰富插件、广泛语言或高度定制规则的团队
如何选择

新建的 JavaScript / TypeScript 项目如果主要使用 Biome 已稳定支持的语言,并希望用更少配置获得快速反馈,可以优先试用 Biome;已有项目若依赖大量 ESLint 插件、Prettier 语言插件或严格的现有格式输出,不必一次性全量替换,可先让 Biome 负责一部分文件或能力。无论采用哪种组合,都应继续运行 TypeScript 编译检查与测试。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 29 日
核验版本@biomejs/biome 2.5.6
内容维护Docs100 编辑整理
项目维护状态活跃维护

本页依据 Biome 官方 Getting Started、语言支持、Linter、Assist、编辑器集成、迁移与 Formatter 差异文档,以及 npm Registry 和官方源码仓库整理。实验性语言能力可能快速变化,采用前应以当前官方文档和真实项目测试为准。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 29 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 29 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库