Что такое Biome
Biome — это набор инструментов в единой системе (toolchain), написанная полностью на Rust. Она объединяет в себе форматтер и линтер для популярных языков фронтенда.
Интересный факт: Biome не привязан к npm или каким-либо менеджерам пакетов — это самодостаточный бинарный файл, который можно использовать где угодно.
Поддерживаемые языки
Biome охватывает множество языков. Ниже приведена таблица со списком текущих возможностей инструмента.
| Language | Parsing | Formatting | Linting | Plugin Support |
|---|---|---|---|---|
| JavaScript | ✅ | ✅ | ✅ | ✅ |
| TypeScript | ✅ | ✅ | ✅ | ✅ |
| JSX | ✅ | ✅ | ✅ | ✅ |
| TSX | ✅ | ✅ | ✅ | ✅ |
| JSON | ✅ | ✅ | ✅ | 🚫 |
| JSONC | ✅ | ✅ | ✅ | 🚫 |
| HTML | ⌛️ | ⌛️ | 🚫 | 🚫 |
| Vue | ⚠️ | ⚠️ | ⚠️ | 🚫 |
| Svelte | ⚠️ | ⚠️ | ⚠️ | 🚫 |
| Astro | ⚠️ | ⚠️ | ⚠️ | 🚫 |
| CSS | ✅️ | ✅️ | ✅️ | ✅ |
| YAML | ⌛️ | 🚫 | 🚫 | 🚫 |
| GraphQL | ✅️ | ✅️ | ✅️ | 🚫 |
| Markdown | ⌛️ | 🚫 | 🚫 | 🚫 |
| GritQL | ✅️ | ✅️ | 🚫 | 🚫 |
- ✅: Поддерживается
- 🚫: Не поддерживается (не в прогрессе)
- ⌛️: Активная работа над поддержкой
- ⚠️: Частично поддерживается (с осторожностью)
Немного истории: от Rome к Biome
Biome — это официальный форк Rome, того самого амбициозного проекта, который пытался объединить линтер, форматтер, тест-раннер и бандлер в одном флаконе. В какой-то момент разработчики Rome решили продолжить путь отдельно — и так появился Biome.
Интересный факт про историю названия
“The team wanted to create a second ‘Rome’, a second version of it. So we fused the words ‘Bis’ and ‘Rome’ — Biome.”
Примерный перевод: “Команда хотела создать второй ‘Рим’, его вторую версию. Поэтому мы объединили слова ‘Бис’ (на латинском "дважды") и ‘Рим’ — получилось Биом”. Название символично: Biome — это “второй Рим”, продолжающий его наследие, но с более зрелым подходом и реальной ставкой на производительность.
Поддержка IDE
У Biome есть две категории расширений: first-party и third-party.
First-party расширения для крупных IDE:
Third-party расширения:
- Vim
- Neovim
- Helix
- Sublime Text
- Emacs
- Nova
Быстрый старт
Установка
Biome проще всего поставить через менеджер пакетов npm, однако можно скачать и отдельный бинарный
файл.
Установка через npm:
npm i -D -E @biomejs/biome
Использование
Biome предоставляет командный интерфейс (CLI) для форматирования и линтинга.
# Форматировать все файлы
npx @biomejs/biome format --write
# Форматировать определенные файлы
npx @biomejs/biome format --write <files>
# Проверить код и применить безопасные исправления ко всем файлам
npx @biomejs/biome lint --write
# Проверить код и применить безопасные исправления к определенным файлам
npx @biomejs/biome lint --write <files>
# Форматирование, линтинг и организация импортов для всех файлов
npx @biomejs/biome check --write
# Форматирование, линтинг и организация импортов для определенных файлов
npx @biomejs/biome check --write <files>
Настройка
Biome можно использовать и без конфигурационного файла. Но если вы хотите настроить поведение Biome, можно запустить команду по генерации конфига:
npx @biomejs/biome init
Команда создаст в корне проекта biome.json с базовой конфигурацией.
Подробный разбор настроек вы можете найти на официальном сайте - biomejs.dev/reference/configuration
Использование в VS Code
- Установите расширение Biome из VS Code Marketplace.
-
Добавьте в корень проекта файл
biome.jsonили сгенерируйте конфиг-файл черезnpx. -
Если
biome.jsonсоздан вручную, скопируйте этот минимальный конфиг:{ "$schema": "https://biomejs.dev/schemas/2.0.5/schema.json", "formatter": { "enabled": false }, "linter": { "enabled": false }, "assist": { "enabled": false } }
Теперь VS Code сам подхватит конфигурацию, и форматирование/линтинг будут выполняться на лету.
Как работает конфигурация
Biome ищет файл конфигурации рекурсивно от корня проекта к целевой папке. Например, если вы запускаете:
biome check project_root/path/to/dir
то Biome будет искать biome.json или .gitignore в следующих местах:
project_root → path → to →
dir.
Поведение поиска можно менять — часть этих параметров тоже задаётся в конфиге. Это удобно, если у вас сложная структура или монорепозиторий.
Что говорят о Biome разработчики
Обсуждения взяты с Reddit и Hackernews.
Настроения в обсуждениях на Hackernews: люди раздражены частыми революциями в инструментах и обилием несовместимых решений. На Reddit больше про практические подходы, кто и как использует или использовал, почему перешел и\или почему вернулся к ESLint + Prettier.
Ситуация с Biome, как и всегда, не совсем однозначная. На любую идею найдутся как скептики, так и прагматики, и пессимисты. Однако многие соглашаются с рядом вещей, которые привносит Biome:
Достоинства Biome
- Biome действительно быстрый - благодаря Rust-ядру линтинг и форматирование почти мгновенны;
-
Независим от пакетных менеджеров. Не нужна жесткая привязка к
npm,yarnи другим инструментам управления пакетами. Можно скачать бинарник и пользоваться; - Прост в конфигурации.
Недостатки продукта:
- Молодой проект: меньше доверия → многие остаются на классике (ESLint + Prettier);
- WIP: у разработчиков много планов на будущее - поддержка больших языков, система плагинов, фикс багов и добавление новых фич. Вот некоторые и спросят, "А зачем ждать, когда есть стабильные, проверенные крупные продукты?";
- Менее гибок: В отличие от связки ESLint + Prettier, здесь меньше возможностей подстроить всё под себя.
В целом выделяется тенденция использовать Biome в CI pipeline, небольших проектах, новых проектах. Но если проект большой, с тяжелыми, кастомными правилами, которые написаны с ESLint + Prettier, такие проекты лучше продолжать обслуживать с текущим стеком.
Я лично считаю, что личный опыт превыше опыта других. Можно долго выслушивать чужие мнения и сомневаться, какой шаг предпринять. Но стоит опробовать на себе, чтобы понять - действительно ли тебе это нужно.
При этом нужно всегда сохранять здравый смысл.
Советую самостоятельно опробовать инструмент в своих проектах! (да, это мнение автора; я
использую Biome чтобы
форматировать js код, при этом использую ESLint в качестве линтера).
Заключение
Biome — ещё молодой проект, но уже с большим потенциалом. Он объединяет философию Rome, мощь Rust и современный подход «один инструмент — много задач». Да, гибкости пока меньше, но скорость и простота компенсируют это сполна.
Для новичков — это отличная точка входа: не нужно возиться с ESLint-конфигами и зависимостями. Для опытных — мощный инструмент в CI-pipeline и хороший способ ускорить разработку.
Если у вас свежий проект — Biome может стать отличным выбором. Простота, скорость и минимум зависимостей. Если же у вас огромный монолит с тонной ESLint-правил и кастомных плагинов — подумайте дважды: миграция может быть болью.
Biome — это не замена на 100%, а скорее свежий взгляд на то, каким должен быть современный dev-инструмент: быстрым, нативным и минималистичным.