抛弃 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% 的常规开发场景,它已经完美胜任。

相关推荐
C澒2 天前
前端编码规范
前端·团队开发·代码规范
HellowAmy2 天前
我的C++规范 - 数据存储器
开发语言·c++·代码规范
HellowAmy3 天前
我的C++规范 - 指针指向
开发语言·c++·代码规范
逍遥德4 天前
如何提高代码可读性
java·开发语言·性能优化·intellij idea·代码规范
HellowAmy7 天前
我的C++规范 - 随机时间点
开发语言·c++·代码规范
HellowAmy7 天前
我的C++规范 - 回调的设想
开发语言·c++·代码规范
a31582380610 天前
Android编码规范(修订版)
android·代码规范
静心观复10 天前
转义符使用
代码规范
HellowAmy11 天前
我的C++规范 - 请转移到文件
开发语言·c++·代码规范