Установка через npm и yarn

Установка ESLint в экосистеме JavaScript выполняется через менеджеры пакетов npm и yarn, при этом выбор способа влияет только на формат команд и управление зависимостями, но не на сам функционал линтера.

Локальная установка является базовым и наиболее распространённым способом подключения ESLint к проекту. В этом случае пакет добавляется в node_modules конкретного проекта и фиксируется в package.json, что обеспечивает воспроизводимость окружения.

Установка выполняется добавлением пакета в зависимости разработки:

npm install eslint --save-dev

После выполнения команды ESLint появляется в разделе devDependencies, поскольку инструмент используется на этапе разработки и не требуется в runtime.

Структура записи в package.json:

{
  "devDependencies": {
    "eslint": "^x.y.z"
  }
}

Локальная установка позволяет использовать разные версии ESLint в разных проектах без конфликтов и обеспечивает контроль над обновлениями через менеджер пакетов.

Глобальная установка через npm

Глобальная установка применяется реже и используется в сценариях, где требуется доступ к ESLint как к системной утилите:

npm install -g eslint

После установки бинарный файл становится доступен в PATH окружения, что позволяет запускать ESLint из любой директории:

eslint --version

Глобальная установка создаёт зависимость от окружения операционной системы и может приводить к расхождению версий между проектами, поэтому в современных практиках разработки предпочтение отдаётся локальной установке.

Установка через yarn

Менеджер пакетов yarn использует аналогичную модель установки зависимостей, но с собственным синтаксисом команд.

Локальная установка:

yarn add eslint --dev

В результате ESLint добавляется в devDependencies, аналогично npm.

Глобальная установка:

yarn global add eslint

При использовании yarn важно учитывать версию менеджера пакетов, поскольку поведение команд и структура lock-файлов различаются между Yarn Classic (1.x) и Yarn Berry (2+), особенно в части резолвинга зависимостей.

Локальная vs глобальная установка

Различие между двумя подходами определяется областью доступности пакета:

  • локальная установка ограничена конкретным проектом
  • глобальная установка доступна во всей системе

Локальный вариант обеспечивает согласованность командной работы, так как версия ESLint фиксируется внутри проекта. Глобальный вариант может использоваться для быстрого тестирования или выполнения разовых проверок, но не гарантирует стабильности поведения при переключении между проектами.

Проверка установки

Корректность установки определяется через вызов версии ESLint:

npx eslint --version

или при глобальной установке:

eslint --version

Использование npx обеспечивает запуск локальной версии пакета без необходимости указывать полный путь к бинарному файлу. Это особенно важно при наличии нескольких проектов с разными версиями ESLint.

Установка в чистом проекте

В новых JavaScript-проектах установка ESLint часто сопровождается созданием базовой структуры package.json:

npm init -y
npm install eslint --save-dev

После добавления зависимости становится доступна инициализация конфигурации:

npx eslint --init

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

Особенности работы с версиями

ESLint развивается в рамках семантического версионирования, где изменения между мажорными версиями могут затрагивать:

  • формат конфигурационных файлов
  • набор встроенных правил
  • поведение парсера
  • поддержку ECMAScript-фич

Фиксация версии в package-lock.json или yarn.lock обеспечивает стабильность линтинга на всех средах выполнения.

Обновление версии выполняется через стандартные команды менеджера пакетов:

npm update eslint

или

yarn upgrade eslint

Установка в монорепозиториях

В монорепозиториях ESLint может устанавливаться на уровне корня рабочего пространства:

npm install eslint -w root-workspace --save-dev

или через Yarn Workspaces:

yarn workspace root-workspace add eslint --dev

Такой подход позволяет использовать единый набор правил для всех пакетов внутри репозитория, снижая дублирование конфигураций.

Контроль бинарных файлов

После установки ESLint становится доступен исполняемый файл eslint, который располагается в:

node_modules/.bin/eslint

При локальной установке запуск осуществляется через:

npx eslint .

или через npm scripts:

{
  "scripts": {
    "lint": "eslint ."
  }
}

Запуск через scripts обеспечивает унификацию команд и исключает необходимость прямого обращения к бинарному файлу.

Распространённые особенности поведения установки

При установке ESLint в зависимости от окружения могут проявляться следующие технические моменты:

  • различия между npm и yarn в разрешении peer dependencies
  • необходимость установки дополнительных парсеров (например, для TypeScript)
  • влияние кэширования менеджера пакетов на обновление версий
  • конфликт глобальной и локальной версии при одновременном использовании

В современных конфигурациях приоритет отдаётся локальной установке, а глобальная используется исключительно как вспомогательный инструмент диагностики и первичной проверки окружения.