Rust 实现的 Web 项目一体化工具链,同时提供 linter 和 formatter,目标是用单一工具替代 ESLint + Prettier 组合,零依赖,25.4k stars。
核心特性
- linter + formatter 一体化:一个 CLI 同时做代码检查和格式化,不用再维护两套配置和两条 CI 流水线
- 速度:比 ESLint + Prettier 组合快 20-100 倍
- 格式化兼容性:与 Prettier 输出约 97% 一致,迁移成本低
- 规则数:455+ linter 规则,覆盖 ESLint 核心规则 + 常见插件(部分 ESLint 特有的 strict/stylistic 规则未完全覆盖)
- 支持语言:JavaScript、TypeScript、JSX、TSX、JSON、CSS
- 规则命名约定:
use*前缀表示”建议/强制使用某写法”,no*前缀表示”禁止某写法”
安装与使用
npm install -D @biomejs/biome
npx biome init # 生成 biome.json 配置
npx biome check . # 同时跑 lint + format 检查
npx biome check . --write # 检查并自动修复/格式化
npx biome lint . # 只跑 linter
npx biome format . --write # 只跑格式化从 ESLint + Prettier 迁移
npx biome migrate eslint # 转换现有 .eslintrc 配置
npx biome migrate prettier # 转换现有 Prettier 配置迁移后两个来源的配置会合并进统一的 biome.json。
配置示例
{
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "error"
}
}
},
"formatter": {
"enabled": true,
"indentStyle": "space"
}
}工具边界
- 规则数量(455+)少于 ESLint 全量生态(含所有第三方插件后规模远超此数),部分小众插件规则没有 Biome 等价物
- 与 ESLint 共存迁移场景下,可用
eslint-config-biome关闭 ESLint 中已被 Biome 覆盖的重复规则,避免双重报错 - 定位偏”一体化工具链”,如果项目已经深度依赖某个 ESLint 专项插件(如复杂的自定义规则集),迁移前需要先做规则覆盖度盘点