Biome
Единый линтер и форматтер для JS/TS/JSON в проекте. Заменяет связку ESLint + Prettier одним инструментом.
Требования
- Node.js 18+.
- Проект без установленного ESLint и Prettier (они конфликтуют с Biome).
Установка
Установить пакет:
bashnpm install --save-dev --save-exact @biomejs/biomeИнициализировать конфиг:
bashnpx @biomejs/biome initВ корне появится
biome.jsonс дефолтными настройками.Привести
biome.jsonк стандартному виду — добавить override для*.css(см. «Стандартныйbiome.json»). Делается сразу послеinit, до первого запускаlint/check.Добавить скрипты в
package.json:json{ "scripts": { "lint": "biome lint .", "format": "biome format --write .", "check": "biome check --write ." } }Скрипт Что делает lintПроверка правил без правок formatАвтоформатирование всех файлов checkLint + format + organize imports в один проход (основная команда)
Стандартный biome.json
Дефолтный biome.json, созданный biome init, кастомизируется ровно одним блоком — overrides для *.css с отключённым правилом suspicious/noUnknownAtRules. Этот override обязателен по умолчанию во всех проектах, независимо от того, подключены ли уже стили: проектный CSS-стек использует @custom-media и другие нестандартные at-правила, которые Biome не распознаёт; без override npm run lint падает.
Фрагмент, который добавляется в biome.json:
{
"overrides": [
{
"includes": ["**/*.css"],
"linter": {
"rules": {
"suspicious": {
"noUnknownAtRules": "off"
}
}
}
}
]
}Если в biome.json уже есть массив overrides — добавить элемент в него; не дублировать массив.
Прочая настройка правил Biome — отдельная задача, не входит в стандартный канон.
Интеграция с VS Code
Расширение biomejs.biome и автоформатирование при сохранении настраиваются в Настройка VS Code.