3.1 KiB
3.1 KiB
Biome vs Oxlint: Comparison for Frontend Tooling
Context
Проект использует ESLint v8 + Prettier для линтинга и форматирования. ESLint 8 устарел (ESLint 9 имеет полностью изменённый конфиг). Рассматриваем замену на современную Rust-тулзу, совмещающую линтинг и форматирование.
Candidates
Biome (v2.5.0)
- Linter + Formatter в одном CLI (
biome check --write) - 500+ правил (ESLint + TypeScript ESLint + другие источники)
- Форматтер: 97% совместимость с Prettier, ~35x быстрее
- Поддержка: JS, TS, JSX, TSX, JSON, HTML, CSS, GraphQL
- Единый конфиг
biome.jsonвместо.eslintrc+.prettierrc - Встроенный import sorting (замена
eslint-plugin-import) - Production usage: AWS, Google, Vercel, Microsoft, Discord, Cloudflare
- Стабильный LTS-релиз, зрелое сообщество
Oxlint + Oxfmt (Oxc Project)
- Oxlint: 50-100x быстрее ESLint, 800+ правил
- Oxfmt: ~3x быстрее Biome formatter, 30x быстрее Prettier
- Type-aware linting через
tsgo - ESLint JS Plugin Support (alpha)
- Два отдельных инструмента с разными конфигами
- Oxfmt в статусе beta
- Под капотом: самый быстрый parser (3x SWC), resolver, minifier (alpha)
- Бэкд: VoidZero (авторы Vite, Rolldown, Rspack)
Comparison
| Критерий | Biome | Oxlint + Oxfmt |
|---|---|---|
| Замена ESLint | ✅ 500+ правил | ✅ 800+ правил |
| Замена Prettier | ✅ 97%, stable | ⚠️ Oxfmt beta |
| Один CLI вместо двух | ✅ | ❌ два инструмента |
| Production-ready | ✅ LTS | ⚠️ formatter beta |
| Конфигурация | 1 файл | 2 файла |
| Скорость линтинга | ~35x vs ESLint | ~50-100x vs ESLint |
| Скорость форматирования | ~35x vs Prettier | ~3x vs Biome |
| Сообщество | mature | growing |
Verdict: Biome
Рекомендуется Biome по трём причинам:
- Одна тулза вместо двух — меньше конфигов, меньше CI-степов, меньше точек отказа
- Production-ready — formatter стабилен, LTS-релизы, тысячи проектов в продакшене
- Плавная миграция — встроенная команда
biome migrate eslint --writeпереносит правила автоматически;biome formatсовместим с Prettier на 97%, не требуется массовых изменений кода
Oxlint + Oxfmt перспективны (быстрее, больше правил), но Oxfmt ещё beta, и два инструмента усложняют конфигурацию. Если Oxfmt выйдет в stable — вопрос стоит пересмотреть.