В процессе выполнения CLI-команд ESLint завершение процесса сопровождается числовым exit code, который фиксирует итог анализа исходного кода. Эти коды используются в CI/CD, pre-commit хуках и системах автоматизации для определения состояния проверки.
Основные значения:
Exit code 1 возвращается в ситуации, когда анализ кода завершился корректно, но были найдены нарушения правил ESLint.
Характерные особенности:
error-уровня)Типичный сценарий:
Пример поведения:
eslint src/
Результат:
/src/index.js
10:5 error 'x' is defined but never used no-unused-vars
✖ 1 problem (1 error, 0 warnings)
В этом случае процесс завершается с code 1, так как ESLint выполнился штатно, но код содержит ошибки.
Ключевая характеристика:
Exit code 1 означает: “анализ выполнен, но код не соответствует правилам”
Exit code 2 указывает на ситуацию, при которой ESLint не смог корректно завершить работу из-за внутренней или конфигурационной ошибки.
Это принципиально отличается от code 1: анализ может быть неполным или вовсе не выполненным.
Типовые причины:
.eslintrc)eslint-plugin-*)Пример ситуации:
eslint src/
Вывод:
Error: Failed to load plugin 'react' declared in '.eslintrc'
Итоговый exit code:
2
Ключевая характеристика:
Exit code 2 означает: “ESLint не смог выполниться корректно”
Разделение кодов 1 и 2 отражает два принципиально разных класса проблем:
| Состояние | Exit code | Природа проблемы | Стадия выполнения |
|---|---|---|---|
| Ошибки линтинга | 1 | Нарушения правил кода | Анализ завершён |
| Критическая ошибка | 2 | Сбой конфигурации или окружения | Анализ прерван |
В системах автоматической сборки различие между кодами критично:
При code 1 пайплайн обычно завершается неуспешно, но причина интерпретируется как качество кода.
При code 2 часто требуется вмешательство в конфигурацию ESLint, зависимости или окружение, так как анализ не был выполнен полностью.
Внутренний цикл работы ESLint можно условно разделить на этапы:
Exit code 1 формируется на этапе 5 при наличии нарушений.
Exit code 2 может возникнуть уже на этапах 1–3 при невозможности продолжить выполнение.
На практике наиболее частые причины критического завершения:
npm installtype: moduleextends или parserПоведение ESLint в терминах exit code можно рассматривать как двухуровневую модель:
Такое разделение позволяет отделять проблемы качества кода от проблем среды выполнения, что особенно важно при масштабных проектах и автоматизированных пайплайнах.