抛弃 ESLint + Prettier?基于 Biome + Husky 的下一代前端工程化实践

引言:天下苦 ESLint 配置久矣
  • 痛点:你是否厌倦了配置 ESLint 和 Prettier 的冲突?你是否觉得大型项目的 Lint 检查速度越来越慢?

  • 破局 :介绍 Biome ------ 基于 Rust 编写,集代码格式化(Formatter)和代码检查(Linter)于一体,速度快到飞起,配置只有在一个文件。

  • 目标 :本文将带你用 Biome + Husky + lint-staged 搭建一套极速、现代化的代码提交规范体系。


第一部分:主角登场 ------ 为什么选择 Biome?
  • 极速体验:基于 Rust,比 Prettier 快 35 倍,瞬间完成格式化。

  • All-in-One :不再需要 eslint-plugin-prettiereslint-config-prettier 来解决冲突。Biome 既管长相(Format),又管质量(Lint)。

  • 开箱即用:零配置也能跑,拒绝"配置地狱"。


第二部分:实战配置 ------ 三步走

1. 安装依赖 不要再装一堆 eslint 插件了,现在清爽多了:

复制代码
npm install --save-dev @biomejs/biome husky lint-staged

2. 初始化 Biome 运行命令生成 biome.json

复制代码
npx @biomejs/biome init

展示一个简单的 biome.json 配置示例(开启 formatter 和 linter):

javascript 复制代码
{
  // Biome工具的中央控制面板
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
  "organizeImports": { // 导入优化
    "enabled": true  // 自动排序顶部import
  },
  "linter": { // 静态检查规则
    "enabled": true,
    "rules": {
      "recommended": true // 开启官方推荐的静态检查规则
    }
  },
  "formatter": { // 全局格式化设置
    "enabled": true, 
    "formatWithErrors": false,   // 代码有错误时 不进行格式化
    "indentStyle": "space",  // 缩进方式:空格
    "indentWidth": 2,  // 缩进大小:两个空格
    "lineEnding": "lf", // 换行符:强制使用LF
    "lineWidth": 100  // 单行最大长度100ch
  },
  "javascript": { // 针对JS/TS的特别定制
    "formatter": {
      "quoteStyle": "single",  // 引号风格: 强制使用单引号
      "semiColons": "always"  // 分号习惯:每行末尾必须有分号
    }
  }
}

3. 配置 Husky + lint-staged (守门员) 这是工程化的核心。我们不仅要快,还要拦住烂代码入库。

  • 初始化 Husky : npx husky init

  • 配置 package.json:

javascript 复制代码
{
  "scripts": {
    "format": "biome format --write ./src",   // 修正格式
    "lint": "biome lint ./src", // 检查语法问题 不修正
    "check": "biome check --apply ./src", // 检查并修正格式与语法问题
    "prepare": "husky" // npm install时自动运行 
  },
  "lint-staged": {
    // 关键点:不再分别调 eslint 和 prettier,直接调 biome check
    "*.{js,ts,cjs,mjs,d.cts,d.mts,json,jsonc}": [
      "biome check --apply --no-errors-on-unmatched"
    ]
  }
}
  • 修改 .husky/pre-commit:

    npx lint-staged


第三部分:核心命令解析 (干货)

解释一下 biome check --apply 这个神级命令到底做了什么:

  1. Format: 格式化代码(缩进、引号)。

  2. Lint: 检查代码逻辑错误。

  3. Organize Imports: 自动去除无用的 import 并排序。

  4. --apply: 能自动修的错误(比如 var 变 const),直接帮你修了,不需要手动改。


第四部分:对比与总结
  • 对比

    • 旧方案:ESLint + Prettier + 5个插件 + 3个配置文件 = 🐢 慢,易冲突。

    • 新方案:Biome + 1个配置文件 = 🚀 极速,统一。

  • 结论:如果你的新项目(特别是 TypeScript 项目)想要追求极致的开发体验和构建速度,Biome 是目前的最佳选择。虽然它的规则生态不如 ESLint 丰富,但对于 95% 的常规开发场景,它已经完美胜任。

相关推荐
码哥字节21 小时前
为什么 Claude Code 读你的代码库,光靠 embedding 根本不够?
claude·代码规范
kisshyshy3 天前
从递归到迭代,一文吃透二叉树的核心知识与 JavaScript 实现
javascript·算法·代码规范
用户6919026813397 天前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
Cosolar7 天前
藏在 Claude Code 里的极致浪漫:完整 187 条 Spinner Verbs 全收录
后端·程序员·代码规范
Mickey8618 天前
MCP 加持下的零代码逆向:全自动化绕过 APP 验签与加密实战
代码规范
专注VB编程开发20年11 天前
WebView2 + HostObject 架构的核心痛点 ——强耦合、同步阻塞、异常连锁、内核绑定
代码规范
LeahDizon12 天前
AI Coding 协作实践方案
程序员·github·代码规范
Asize13 天前
Bun + TypeScript 实战:从接口约束到 RESTful 路由设计
后端·typescript·代码规范
何以解忧,唯有..13 天前
Go 语言语句分隔符详解:分号、换行与代码规范
开发语言·golang·代码规范