Skip to content

Biome

Единый линтер и форматтер для JS/TS/JSON в проекте. Заменяет связку ESLint + Prettier одним инструментом.

Требования

  • Node.js 18+.
  • Проект без установленного ESLint и Prettier (они конфликтуют с Biome).

Установка

  1. Установить пакет:

    bash
    npm install --save-dev --save-exact @biomejs/biome
  2. Инициализировать конфиг:

    bash
    npx @biomejs/biome init

    В корне появится biome.json с дефолтными настройками.

  3. Привести biome.json к стандартному виду — добавить override для *.css (см. «Стандартный biome.json»). Делается сразу после init, до первого запуска lint/check.

  4. Добавить скрипты в 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:

jsonc
{
  "overrides": [
    {
      "includes": ["**/*.css"],
      "linter": {
        "rules": {
          "suspicious": {
            "noUnknownAtRules": "off"
          }
        }
      }
    }
  ]
}

Если в biome.json уже есть массив overrides — добавить элемент в него; не дублировать массив.

Прочая настройка правил Biome — отдельная задача, не входит в стандартный канон.

Интеграция с VS Code

Расширение biomejs.biome и автоформатирование при сохранении настраиваются в Настройка VS Code.