wulibaibao

© 2026 wulibaibao.com

ToolchainRustBiome

Biome:统一前端工具链的未来

Wwulibaibao📅 2026年4月12日👁️ 36 次阅读⏱️ 2 分钟阅读

Biome:统一前端工具链的未来

前言

前端项目依赖的工具越来越多:Prettier 管格式、ESLint 管 lint、Stylelint 管样式……每次新建项目光配置这些工具就够头疼了。Biome 的出现,就是要把这些全部统一。

Biome 是一个用 Rust 编写的高性能前端工具链,同时提供格式化(Formatter)和代码检查(Linter)功能,宣称比 Prettier 快 35 倍,比 ESLint 快 100 倍以上

为什么需要 Biome

传统的工具链有几个痛点:

配置割裂。Prettier、ESLint、Stylelint 各有一套配置文件,.prettierrc.eslintrc.js.stylelintrc,维护成本高,新人上手慢。

性能瓶颈。JavaScript 实现的工具在大型 monorepo 中速度感人,每次 git commit 前的 pre-commit hook 可能要跑几分钟。

规则分散。ESLint 的插件生态碎片化,同一个规则在不同项目中行为不一致。

Biome 的核心思路:一个工具,一个配置文件,覆盖所有场景

快速上手

npm i -D --save-exact @biomejs/biome
npx @biomejs/biome format --write ./src
npx @biomejs/biome lint --write ./src
npx @biomejs/biome check --write ./src

check 命令会同时运行格式化和 lint,并自动修复可修复的问题。零配置即可上手,Biome 会自动检测项目中的配置文件。

核心能力

格式化

支持 JavaScript、TypeScript、JSX、TSX、JSON、JSONC、HTML、CSS(含 SCSS/Less)、GraphQL。兼容 Prettier 达 97%,意味着从 Prettier 迁移几乎没有风险。

Lint 规则

Biome 内置了 472 条规则,涵盖 ESLint、typescript-eslint 和其他来源的最佳实践。每条规则都有清晰的诊断信息和修复建议。

常见的规则映射:

ESLint 规则 Biome 规则 说明
no-var style/noVar 禁用 var
no-console lint/noConsole 禁止 console
use-template-literals style/useTemplateLiterals 优先模板字符串
no-unused-vars lint/noUnusedVariables 禁止未使用变量
eqeqeq lint/eqeqeq 强制使用 ===
useFlatMap complexity/useFlatMap map().flat() → flatMap()

规则是分层级的:correctness(正确性)、style(风格)、performance(性能)、a11y(无障碍)、security(安全)。

与 CI/CD 集成

name: CI
on: [push, pull_request]
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "22"
          cache: "npm"
      - run: npm ci
      - run: npx @biomejs/biome check --ci ./src

--ci 模式下 Biome 不会自动修改文件,而是报告需要修复的问题,适合在 CI 中使用。

迁移现有项目

npx @biomejs/biome migrate eslint --write
npx @biomejs/biome migrate prettier --write

Biome 配置

{
  "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
  "organizeImports": { "enabled": true },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "style": { "useTemplateLiterals": "warn" },
      "complexity": { "useFlatMap": "error" }
    }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "single",
      "semicolons": "always"
    }
  }
}

在 Next.js 项目中使用

Next.js 15+ 内置支持 Biome,在 package.json 中添加:

{
  "scripts": {
    "lint": "biome check --write ./src",
    "lint:ci": "biome check --ci ./src"
  }
}

推荐在 pre-commit hook 中使用 husky + lint-staged:

{
  "lint-staged": {
    "*.{ts,tsx,js,jsx}": ["biome check --write"]
  }
}

局限性

Biome 尚不支持 Stylelint 完整的 CSS 检查能力,对于大型 CSS 项目可能仍需保留部分原有工具。此外,Prettier 兼容性 97% 意味着极少数极端情况可能有差异,上线前需仔细 review。插件生态也比 ESLint 年轻很多。

总结

Biome 代表了前端工具链的一种新范式:少即是多。一个工具、一个配置、一个团队规范。如果你的项目还在用 ESLint + Prettier 的老组合,强烈建议给 Biome 一个机会——35 倍的速度提升和统一配置带来的体验提升是实质性的。

W
wulibaibao
全栈开发 / 创业实践者,分享技术踩坑、工具链搭建和产品化过程中的思考。关注 AI 辅助编程与电商实战。

📚相关文章

💬评论

加载评论...