我为什么把项目里的 ESLint 和 Prettier 全换成了 Biome?一篇说清楚

我为什么把项目里的 ESLint 和 Prettier 全换成了 Biome?一篇说清楚

上周二下午,我同事在群里发了张截图——npm install 跑了快两分钟,装的全是 lint 和 format 相关的包。ESLint、@typescript-eslint/parser、eslint-plugin-react、eslint-plugin-react-hooks、prettier、eslint-config-prettier、stylelint、husky、lint-staged……光数一数,12 个 devDependency 全是干代码检查这事儿的。

“这合理吗?”他问。

确实不合理。一个前端项目,lint + format 工具占的依赖比业务框架还多,配置文件的智商税越交越重。

所以今天聊聊 Biome——一个 Rust 写的、开箱即用、一个二进制文件搞定代码检查和格式化的工具。

传统方案的痛点

配置碎片化:.eslintrc.js、.prettierrc、.eslintignore、.prettierignore、.stylelintrc.json、tsconfig.json……eslint-plugin-prettier 把 Prettier 的规则当 ESLint 规则跑,两边打架。

性能差距:Biome 多线程格式化 25x,单线程 7x,Prettier 才 1x。800 个文件的项目,Prettier 跑 6-8 秒,Biome 0.3 秒。

依赖爆炸:node_modules 从 280MB 降到 210MB,全是 lint 相关的包。

什么是 Biome

源自 Rome 项目的社区分支,用 Rust 完全重写。一个 CLI 搞定检查 + 格式化 + 导入排序,97% 兼容 Prettier,190+ 内置 lint 规则。

实战迁移

npm install –save-dev @biomejs/biome,卸载旧工具,创建 biome.json,运行 npx @biomejs/biome check –write src/,配置 VSCode,更新 CI 脚本。

迁移中遇到的坑

坑一:ESLint 300+ 插件,Biome 190+ 规则,冷门插件可能没有替代。坑二:97% 兼容不是 100%,长行尾逗号、JSX 换行有细微差异。坑三:monorepo 需要子目录独立配置。

要不要现在就迁移

新项目强烈建议。用了大量冷门插件或团队有严格格式要求的可以缓一缓。马上发版的不建议。

前端工具链正在全面 Rust 化。新工具优先选 Rust 实现的——Rspack、Rolldown、Biome、Turbopack。同一个功能,Rust 实现快 10-50 倍。花 15 分钟跑一次 npx @biomejs/biome check src/,感受一下秒级 lint。ESLint + Prettier?回不去了。

评论区

0 条评论

登录后可评论。

查看完整榜单
查看完整榜单
查看完整榜单