Прощай, Rome, здравствуй, Biome: новый универсальный набор фронтенд-инструментов
1. «Усталость от инструментов» во фронтенд-разработке
В современной фронтенд-разработке проекту обычно требуется сложное сочетание инструментов для бесперебойной работы:
- Linter: ESLint проверяет качество кода JavaScript/TypeScript.
- Formatter: Prettier обеспечивает единый стиль кода.
- Compiler: Babel или TypeScript (tsc) преобразует код.
- Bundler: Webpack, Rollup или Vite собирает приложение.
Управление настройками, плагинами, версиями и взаимодействием этих инструментов само по себе требует немало труда. Это и называют «усталостью от инструментов». В течение многих лет сообщество изучало возможность универсального набора инструментов, надеясь решить все задачи одним средством.
2. Идея Rome и рождение Biome
Rome был амбициозным проектом, начатым бывшим сотрудником Facebook и автором Babel Себастьяном Маккензи. Он стремился переписать весь набор фронтенд-инструментов на TypeScript. Идея заключалась в едином высокопроизводительном инструменте, не требующем настройки. Однако после многих лет разработки и попыток коммерциализации компания Rome Labs в 2023 году объявила о прекращении работы.
К счастью, основной код Rome был открытым. Сообщество быстро создало форк под названием Biome, который стала поддерживать специальная общественная организация, чтобы унаследовать и воплотить первоначальную идею Rome.
3. Что такое Biome?
Biome — высокопроизводительный набор фронтенд-инструментов, переписанный на Rust. Он призван обеспечить единый и чрезвычайно быстрый процесс разработки, заменив ряд независимых инструментов, таких как ESLint и Prettier.
К концу 2023 года основные возможности Biome были сосредоточены прежде всего на Linter и Formatter, и в обеих областях он уже демонстрировал впечатляющие результаты.
Основные преимущества:
- Высочайшая производительность: Благодаря Rust Biome работает намного быстрее написанных на JavaScript ESLint и Prettier. Для крупных кодовых баз прирост может достигать целого порядка.
- Единая конфигурация: Всего один файл
biome.jsonпозволяет управлять поведением всех инструментов, заменяя разбросанные.eslintrc,.prettierrcи.editorconfig. - Подробная диагностика: Linter Biome не только указывает на ошибки, но и предоставляет подробный контекст и рекомендации по исправлению, помогая разработчикам понять причину проблемы.
- Совместимость с Prettier: Форматтер Biome стремится поддерживать более 95% правил Prettier, поэтому стоимость миграции с Prettier остается очень низкой.
4. Быстрый старт
Biome можно быстро опробовать в проекте с помощью npx:
# 检查当前项目中的代码问题
npx @biomejs/biome check ./src
# 自动修复可修复的 lint 问题
npx @biomejs/biome check --apply ./src
# 格式化代码
npx @biomejs/biome format --write ./srcСоздайте файл biome.json, чтобы настроить правила и параметры:
{
"$schema": "https://biomejs.dev/schemas/1.4.1/schema.json",
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
}
}5. Взгляд в будущее
У Biome очень ясная дорожная карта: после стабилизации Linter и Formatter постепенно реализовать Compiler, Bundler, Test Runner и другие функции, чтобы в итоге стать по-настоящему универсальным набором инструментов.
Хотя Biome еще молод, благодаря превосходной производительности, открытой модели развития силами сообщества и вниманию к удобству разработчиков он уже стал заметной новой силой среди фронтенд-инструментов. Для команд, которые хотят упростить набор инструментов и повысить эффективность разработки, Biome предлагает очень привлекательный вариант на будущее.