Команда eslint --init запускает интерактивный процесс
первичной конфигурации ESLint и формирует базовый набор файлов,
необходимых для статического анализа JavaScript-кода. В ходе выполнения
утилита последовательно уточняет параметры окружения проекта,
используемые стандарты кода, формат конфигурации и набор дополнительных
расширений, после чего генерируется готовый конфигурационный файл.
Инициализация ESLint решает задачу автоматического создания стартовой конфигурации линтера без необходимости ручного написания правил и подключения зависимостей. На выходе формируется структура, включающая:
Основная цель процесса — минимизировать ошибки настройки и обеспечить согласованную структуру линтинга с самого начала жизненного цикла проекта.
Перед запуском команды требуется наличие установленного Node.js и менеджера пакетов npm или yarn. ESLint устанавливается как dev-зависимость:
npm install eslint --save-dev
После установки становится доступной CLI-команда:
npx eslint --init
или альтернативно:
npm init @eslint/config
Оба варианта запускают одинаковый процесс конфигурации, однако второй является более современным способом и рекомендован в новых версиях экосистемы.
После вызова eslint --init активируется
последовательность вопросов, определяющих структуру будущей
конфигурации. Каждый ответ влияет на итоговый файл и набор подключаемых
модулей.
Типичный набор шагов включает:
Определяется назначение ESLint:
От выбранного варианта зависит строгость правил и список подключаемых конфигураций.
Указывается тип модулей, используемых в проекте:
import/export);require/module.exports);Эта настройка влияет на параметры парсера и среду выполнения кода.
Если проект использует UI-фреймворк, конфигурация может учитывать особенности:
При выборе конкретного фреймворка автоматически подключаются
соответствующие плагины ESLint, например
eslint-plugin-react.
ESLint поддерживает расширения JavaScript-экосистемы:
При выборе TypeScript добавляется парсер
@typescript-eslint/parser и набор правил
@typescript-eslint/eslint-plugin.
Определяются глобальные переменные окружения:
Эти параметры предотвращают ложные ошибки, связанные с неопределёнными глобальными объектами.
Одним из ключевых этапов является выбор формата конфигурации:
.eslintrc.json.eslintrc.js.eslintrc.ymleslint.config.js (flat config)Современная архитектура ESLint ориентируется на flat config, где конфигурация представляет собой JavaScript-массив объектов, а не иерархическую структуру.
После завершения ответов создаётся файл конфигурации. Его структура зависит от выбранного формата.
.eslintrcПример конфигурации:
{
"env": {
"browser": true,
"node": true
},
"extends": [
"eslint:recommended"
],
"parserOptions": {
"ecmaVersion": 2023,
"sourceType": "module"
},
"rules": {
"no-unused-vars": "warn",
"no-console": "off"
}
}
Основные секции:
env — определение глобальных переменных;extends — наследование базовых конфигураций;parserOptions — настройки синтаксиса;rules — переопределение правил.eslint.config.js)Современный формат имеет иную структуру:
export default [
{
languageOptions: {
ecmaVersion: 2023,
sourceType: "module"
},
rules: {
"no-unused-vars": "warn",
"no-console": "off"
}
}
];
Ключевое отличие заключается в том, что конфигурация строится как последовательность независимых объектов, применяемых к файлам по правилам сопоставления.
В ходе инициализации автоматически устанавливаются дополнительные пакеты:
Пример зависимостей:
npm install eslint-plugin-react @typescript-eslint/parser @typescript-eslint/eslint-plugin --save-dev
Состав устанавливаемых пакетов зависит от выбранных опций.
После инициализации часто добавляется команда в
package.json:
{
"scripts": {
"lint": "eslint ."
}
}
Эта команда позволяет запускать анализ всего проекта через npm:
npm run lint
Дополнительно могут использоваться параметры:
--fix для автоматического исправления ошибок;Типичный проект после выполнения eslint --init
содержит:
package.json с зависимостями;node_modules с установленными пакетами;.eslintignore для исключений.Файл .eslintignore определяет директории, исключаемые из
анализа:
node_modules/
dist/
build/
После завершения настройки ESLint начинает работать в соответствии с заданной конфигурацией. Анализ выполняется по следующим принципам:
Пример запуска анализа:
npx eslint src/
В зависимости от выбранных опций могут подключаться дополнительные возможности:
При выборе форматирования может добавляться:
eslint-config-prettier;При выборе TypeScript добавляются:
tsconfig.json;parserOptions.project;Могут подключаться плагины:
eslint-plugin-import;Процесс --init может приводить к некорректной
конфигурации в ряде случаев:
extends.Особенно критичным является одновременное использование
.eslintrc и eslint.config.js, что приводит к
непредсказуемому поведению линтера.
В новых версиях ESLint развивается переход к flat config, поэтому процесс инициализации может:
eslint.config.js по умолчанию;.eslintrc* файлов;Конфигурация становится более явной и программируемой, что упрощает интеграцию в сложные сборочные системы.
Каждый шаг инициализации формирует долгосрочную структуру контроля качества кода:
Ошибки на этапе инициализации часто приводят к необходимости полной переработки конфигурации в дальнейшем, поскольку ESLint тесно связан с архитектурой проекта.