Флаг --print-config в CLI ESLint предназначен для вывода
итоговой конфигурации, которая применяется к конкретному файлу после
обработки всех уровней конфигурации: базовых настроек, расширений,
переопределений, игнорирования и плагинов.
Команда выполняет полное разрешение конфигурационного дерева и возвращает финальный объект настроек, который ESLint фактически использует при анализе указанного файла. Это включает:
extends)overridesrules)ignorePatterns,
.eslintignore)eslint --print-config <путь-к-файлу>
Пример:
eslint --print-config src/index.js
Файл должен существовать в проекте, поскольку конфигурация вычисляется в контексте конкретного пути.
ESLint поддерживает несколько уровней конфигурации, которые
объединяются в единое итоговое состояние. --print-config
показывает результат этого объединения без запуска линтинга.
Порядок разрешения конфигурации:
.eslintrc,
eslint.config.js, package.json)extends)overrides)Итоговая конфигурация отражает результат всех этих этапов.
В классической системе .eslintrc результат включает:
extendsВывод представляет собой полностью развёрнутый JSON-объект.
В новой архитектуре flat config (eslint.config.js)
конфигурация строится как массив объектов без глубокого слияния.
--print-config в этом режиме:
eslint --print-config src/app.js
Результат:
{
"parserOptions": {
"ecmaVersion": 2022,
"sourceType": "module"
},
"env": {
"browser": true,
"node": true
},
"rules": {
"no-unused-vars": "warn",
"no-console": "off"
},
"plugins": ["import"],
"settings": {
"react": {
"version": "detect"
}
}
}
Этот JSON представляет итоговую конфигурацию, которую ESLint
использует при анализе src/app.js.
При наличии подключённых плагинов их правила и настройки также включаются в итоговый результат.
Пример:
eslint --print-config src/component.jsx
Если используется плагин react, в вывод попадут:
Секции overrides применяются только к файлам,
соответствующим указанным шаблонам.
--print-config учитывает это поведение:
{
"overrides": [
{
"files": ["*.test.js"],
"rules": {
"no-unused-expressions": "off"
}
}
]
}
Если запрашивается конфигурация для example.test.js,
итоговый вывод будет содержать отключённое правило. Для обычного файла —
нет.
Если файл подпадает под правила игнорирования:
.eslintignoreignorePatternsignores в flat configкоманда может:
Флаг отображает итоговые параметры, влияющие на разбор кода:
parser — используемый парсер (например,
@babel/eslint-parser)parserOptions — ECMAScript настройкиenv — глобальные переменные окруженияПример:
{
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"es6": true,
"node": true
}
}
--print-config фактически выполняет роль
диагностического инструмента, позволяющего:
extendsoverridesОсобенно важно при сложных конфигурациях с множеством уровней наследования.
Если ожидается, что правило отключено, но оно присутствует:
"no-console": "warn"
значит где-то в цепочке конфигураций оно не было переопределено корректно.
Отсутствие ожидаемых правил плагина в выводе означает:
Разные файлы могут иметь разные итоговые конфигурации:
eslint --print-config src/a.js
eslint --print-config src/a.test.js
Результаты могут существенно отличаться из-за
overrides.
В среде Node.js команда работает через CLI-обвязку ESLint, используя файловую систему проекта для:
node_modulesВывод всегда представляет собой JSON-структуру, содержащую:
Это делает результат пригодным для: