Установка 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 в разных проектах без конфликтов и обеспечивает контроль над обновлениями через менеджер пакетов.
Глобальная установка применяется реже и используется в сценариях, где требуется доступ к ESLint как к системной утилите:
npm install -g eslint
После установки бинарный файл становится доступен в PATH окружения, что позволяет запускать ESLint из любой директории:
eslint --version
Глобальная установка создаёт зависимость от окружения операционной системы и может приводить к расхождению версий между проектами, поэтому в современных практиках разработки предпочтение отдаётся локальной установке.
Менеджер пакетов yarn использует аналогичную модель установки зависимостей, но с собственным синтаксисом команд.
Локальная установка:
yarn add eslint --dev
В результате ESLint добавляется в devDependencies,
аналогично npm.
Глобальная установка:
yarn global add eslint
При использовании yarn важно учитывать версию менеджера пакетов, поскольку поведение команд и структура lock-файлов различаются между Yarn Classic (1.x) и Yarn Berry (2+), особенно в части резолвинга зависимостей.
Различие между двумя подходами определяется областью доступности пакета:
Локальный вариант обеспечивает согласованность командной работы, так как версия 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 развивается в рамках семантического версионирования, где изменения между мажорными версиями могут затрагивать:
Фиксация версии в 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 в зависимости от окружения могут проявляться следующие технические моменты:
В современных конфигурациях приоритет отдаётся локальной установке, а глобальная используется исключительно как вспомогательный инструмент диагностики и первичной проверки окружения.