Генератор ESLintrc

Далее

Этот генератор создаёт готовую конфигурацию .eslintrc.json на основе четырёх выборов: окружение браузера или Node, поддержка TypeScript и поддержка React. Он подключает eslint:recommended, соответствующие плагины TypeScript или React и несколько разумных перезаписей правил, чтобы вы могли сразу вставить результат в свой проект.

Как создать конфигурацию ESLint

  1. 1

    Выберите окружение

    Укажите, где выполняется код: в браузере, в Node.js или в обоих. Генератор устанавливает соответствующие записи `env`, плюс `es2022`.

  2. 2

    Включите TypeScript

    Отметьте TypeScript, и генератор добавит `@typescript-eslint/parser` и рекомендуемый плагин TypeScript.

  3. 3

    Включите React

    Отметьте React, и генератор добавит `eslint-plugin-react` с его рекомендуемым пресетом.

  4. 4

    Сгенерировать

    Нажмите кнопку, и конфигурация будет создана в виде аккуратно отформатированного JSON.

  5. 5

    Скопируйте в свой проект

    Вставьте результат в `.eslintrc.json` и установите плагины, на которые он ссылается.

Что содержит сгенерированная конфигурация

Генератор всегда начинает с eslint:recommended и добавляет ровно то, что подразумевает ваш выбор:

  • env с browser и/или node, плюс es2022
  • @typescript-eslint/parser и plugin:@typescript-eslint/recommended, когда TypeScript включён
  • plugin:react/recommended, когда React включён
  • no-console и no-unused-vars, установленные в warn

Результат: это обычный JSON-объект в классическом формате .eslintrc.json, готовый к вставке и дополнению вашими правилами.

Плоский формат против устаревшего

ESLint 9 отказался от формата .eslintrc.* в пользу плоской конфигурации (eslint.config.js). Основные различия:

Аспект Устаревший (.eslintrc) Плоский (eslint.config.js)
Формат JSON, YAML или CommonJS Модуль JavaScript ESM или CommonJS
Расширение extends: ["plugin:react/recommended"] Развёртывание в массив: ...reactPlugin.configs.recommended
Переопределения Массив overrides с glob-шаблонами Несколько объектов в экспортируемом массиве
Глобальные переменные env: { browser: true } languageOptions.globals с явными импортами
Игнорирование Файл .eslintignore Поле ignores в массиве конфигурации

Новые проекты должны использовать плоскую конфигурацию. Существующие проекты могут оставаться на устаревшем формате вплоть до линейки 10.x, однако рекомендуется провести миграцию.

Экосистема плагинов

Типичные плагины для проектов React/TS:

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier

Это шесть пакетов для умеренно строгой настройки. Генератор добавляет те, которые вы выбрали, поэтому вы устанавливаете только то, на что ссылается конфигурация.

Сосуществование с Prettier

Prettier занимается форматированием; ESLint, проверкой корректности кода и его стиля помимо форматирования. Для предотвращения конфликтов:

  1. Установите eslint-config-prettier и добавьте его ПОСЛЕДНИМ элементом в вашем extends/config.
  2. Он отключает все правила ESLint, которые конфликтуют с выводом Prettier.
  3. Запускайте Prettier отдельно (при сохранении в редакторе, в pre-commit-хуке, в CI).

Не используйте eslint-plugin-prettier в новых проектах: он замедляет работу ESLint за счёт запуска инструмента Prettier внутри ESLint. Используйте два инструмента отдельно.

Советы по настройке правил

  • Начинайте мягко, затягивайте постепенно. Включайте предупреждения раньше ошибок.
  • Переопределяйте для тестов. В тестовых файлах часто нужно ослабить no-unused-expressions и сделать доступными глобальные переменные Jest.
  • Переопределяйте для скриптов. Скриптам сборки могут понадобиться глобальные переменные Node без глобального добавления env: node.
  • Документируйте переопределения. Каждое переопределение правила заслуживает комментария с объяснением причины.

Конфигурация, соответствующая вашему редактору

Для использования VS Code необходимо установить и настроить расширение ESLint. Добавьте его в настройки рабочего пространства для автоматического исправления ошибок при сохранении файла.

{
  "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}

Часто задаваемые вопросы

Для новых проектов используется плоская конфигурация (eslint.config.js). Этот генератор выдаёт классический формат .eslintrc.json, который ESLint читает нативно в устаревшем режиме; таблица сравнения выше показывает, что изменится при последующей миграции.

Да, если вы используете TypeScript: параметры @typescript-eslint/parser и @typescript-eslint/eslint-plugin поддерживают проверку кода с учётом особенностей TypeScript. Для правил, связанных с типами данных (а не только с синтаксисом), также необходимо настроить парсер с использованием параметра project: './tsconfig.json'.

Как правило, в среде автоматизированной интеграции (CI) отсутствуют необходимые зависимости. Убедитесь, что версии файлов @typescript-eslint/*, плагинов и инструмента ESLint совпадают между локальной средой и средой CI. В среде CI используйте версию npm ci (а не npm install), чтобы соблюдать требования файла блокировки.

Нет. Ваши выборы используются только для генерации конфигурации; они не сохраняются и не передаются третьим лицам.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Шпаргалка по Markdown

Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.

Инструмент доступен на других языках