3.4 KiB
title, description, keywords
| title | description | keywords | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Biome | Установка и настройка линтера-форматтера в новом проекте. |
|
Biome
Установка и настройка линтера-форматтера в новом проекте.
Требования
- Node.js 18+.
- Проект без установленного ESLint и Prettier (они конфликтуют с Biome).
Установка
-
Установить пакет:
npm install --save-dev --save-exact @biomejs/biome -
Инициализировать конфиг:
npx @biomejs/biome initВ корне появится
biome.jsonс дефолтными настройками. -
Привести
biome.jsonк стандартному виду (см. «Стандартныйbiome.json»). Делается сразу послеinit, до первого запускаlint/check. -
Добавить скрипты в
package.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, заменяется стандартным конфигом проекта.
Стандартный biome.json:
{
"$schema": "https://biomejs.dev/schemas/2.2.0/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": true,
"includes": ["**", "!node_modules", "!.next", "!dist", "!build", "!.templates", "!src/infra/**/generated"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 120
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"jsxQuoteStyle": "double"
}
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noUnknownAtRules": "off"
},
"correctness": {
"noUnknownMediaFeatureName": "off"
}
},
"domains": {
"next": "recommended",
"react": "recommended"
}
},
"assist": {
"actions": {
"source": {
"organizeImports": "on"
}
}
}
}
src/infra/**/generated исключается из Biome, потому что generated-файлы не правятся руками. При этом generated-файлы остаются в git.
Правила suspicious/noUnknownAtRules и correctness/noUnknownMediaFeatureName отключены, потому что проектный CSS-стек использует @custom-media и другие конструкции, которые Biome может не распознавать.
Интеграция с VS Code
Расширение biomejs.biome и автоформатирование при сохранении настраиваются в VS Code.