Что такое ESLint?
ESLint — это популярный линтер для JavaScript и TypeScript, который помогает находить ошибки, несоответствия стандартам и автоматически исправлять часть из них. Он стал неотъемлемой частью современного подхода в разработке веб-приложений.
В отличие от валидаторов, которые проверяют только синтаксис, ESLint анализирует:
- Стиль кодирования
- Потенциальные ошибки
- Проблемы с архитектурой
- Неиспользуемый код
- Сложность функций
Зачем нужен ESLint?
Коротко
Предотвращает ошибки
Поиск чего-нибудь типичного, например, необъявленные переменные, неиспользуемые импорты, мертвый (ненужный) код.
Формирует единый стиль
Гарантирует, что вся команда пишет код в одном стиле, независимо от предпочтений разработчиков.
Повышает качество
Помогает избегать антипаттернов и писать поддерживаемый код.
Экономит время
Автоматически исправляет многие типичные проблемы, избавляя от рутины - мелкие опечатки, неиспользуемые переменные, перевод функций в современный стандарт (использование стрелочных функций).
А теперь копнем глубже!
Подробно
Когда над проектом работает несколько человек, их кодовый стиль неизбежно отличается. Один ставит точки с запятой, другой — нет; кто-то предпочитает двойные кавычки, кто-то — одинарные. Разработчики по-разному могут называть переменные, следовать разным принципам программирования. Даже если удаётся договориться о базовых правилах и стандартах, мелких расхождений избежать не получится — со временем код всё равно станет трудночитаемым и непоследовательным.
ESLint помогает решить эту проблему: он берёт на себя проверку кода на соответствие правилам, установленным командой, компанией или тимлидом. Автоматически анализируя код, инструмент обеспечивает единообразие, повышает предсказуемость и снижает вероятность ошибок.
ESlint имеет как встроенные правила, так и позволяет создавать собственные. Так, если зайти на
ресурс npmjs и написать
eslint rules, мы сможем найти популярные правила сообщества, правила от
крупных компаний.
ESLint сам по себе не распространяет правила на npmjs. Просто там публикуются плагины и наборы конфигураций. Вы можете хранить и распространять свои конфигурации и на другом ресурсе, если это необходимо, например, в рамках приватности.
Быстрый старт
Установка
Для того, чтобы установить ESLint, следуйте простым шагам:
-
Проверка зависимостей
Пакетный менеджер
Убедитесь, что у вас установлен пакетный менеджер — это может быть
npm,pnpm,yarn,bunилиdeno. Если пакетного менеджера ещё нет, начните сnpm— это простой и надёжный вариант для новичков. Гайд по установкеnpm.Почему я советую
npmдля новичков? Все просто.Во-первых,
npmидет из коробки при установке Nodejs.Во-вторых: я пока неглубоко разбираюсь в пакетных менеджерах. Возможно, со временем перейду на другой — более безопасный или быстрый. Но сейчас моя цель — разрабатывать веб-приложения, и для этого
npmвполне подходит. Он популярен и прост — этого мне достаточно.Nodejs
eslintтребует наличия Nodejs. Убедитесь, что у вас установлено необходимое ПО.Инициализированный проект
Перейдите в корень вашего проекта или создайте новый проект. Создайте
package.jsonчерез установленный пакетный менеджер: -
Инициализация
eslintИнициализируйте
eslintв корне вашего проекта:npm init @eslint/config@latest # либо укажите конкретную версиюУстановщик задаст несколько вопросов: на чем пишется проект (TypeScript или JavaScript), какой фреймворк используется (Vue, React, Vanilla и т.д.), в каком формате сохранить конфигурацию.
Важно:
npm init @eslint/configпредполагает, что у вас в проекте уже есть файлpackage.json. Если у вас нет такого файла, проинициализируйте проект.
Это все! После установки в корне вашего проекта появится конфигурационный файл
eslint.config.js, в котором можно настраивать поведение линтера в рамках проекта.
Использование
Чтобы воспользоваться eslint, можно использовать командный интерфейс (CLI) команды. Ниже даны примеры базового
использования.
Синтаксис
Большинство пользователей используют npx для запуска ESLint:
npx eslint [options] [file|dir|glob]*
Примеры
-
Проверить два файла:
npx eslint file1.js file2.js -
Проверить несколько файлов в директории
lib:npx eslint lib/**
Более подробно ознакомиться с параметрами командного интерфейса вы можете на официальной документации ESLint - eslint.org/docs/latest/use/command-line-interface
Видеогайд
Не до конца понятно из объяснения? Посмотри 20-минутное видео, где подробно показано, как настроить ESLint вместе с Prettier в роли форматтера.