Одной из наиболее востребованных возможностей ESLint является автоматическое исправление части обнаруженных проблем без ручного редактирования кода. Механизм автофикса позволяет применять исправления сразу после сохранения файла, поддерживая единый стиль оформления и снижая количество рутинных действий во время разработки.
Автоматическое исправление особенно полезно при работе в крупных проектах, где необходимо соблюдать строгие стандарты кодирования. Вместо постоянного запуска команды линтера вручную изменения могут применяться автоматически в момент сохранения документа в редакторе.
Наиболее часто автоматически исправляются:
Следует учитывать, что не каждая ошибка ESLint может быть исправлена автоматически. Многие правила специально не поддерживают автофикс, поскольку автоматическое изменение кода может привести к изменению логики программы.
ESLint анализирует исходный код и определяет нарушения правил. Если правило поддерживает автоматическое исправление, линтер формирует набор изменений, которые могут быть безопасно применены к файлу.
При запуске команды:
eslint . --fix
ESLint:
При интеграции с редактором тот же механизм запускается автоматически после сохранения документа.
Перед настройкой автоматического исправления необходимо убедиться, что ESLint корректно установлен и работает в проекте.
Пример установки:
npm install --save-dev eslint
Создание конфигурации:
npx eslint --init
Проверка работы линтера:
npx eslint src
Проверка автоматического исправления:
npx eslint src --fix
Если после выполнения команды некоторые ошибки исчезли автоматически, значит механизм автофикса функционирует корректно.
Многие встроенные правила ESLint содержат встроенные исправления.
Пример настройки:
export default [
{
rules: {
semi: ["error", "always"],
quotes: ["error", "single"],
indent: ["error", 4]
}
}
];
Исходный код:
const name = "Alex"
После автофикса:
const name = 'Alex';
ESLint автоматически:
Редактор Visual Studio Code предоставляет наиболее удобную интеграцию с ESLint.
Необходимо установить расширение:
ESLint
После установки в настройках проекта создаётся файл:
.vscode/settings.json
Базовая настройка:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}
Для некоторых версий VS Code используется вариант:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
После сохранения файла редактор автоматически запускает ESLint и применяет исправления.
Во многих проектах одновременно используются ESLint и Prettier.
Настройки VS Code могут выглядеть следующим образом:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Порядок обработки:
Подобная схема обеспечивает максимально автоматизированную обработку исходников.
Глобальные настройки редактора могут влиять на все проекты. Во избежание конфликтов рекомендуется хранить параметры автофикса внутри каталога проекта.
Структура:
project/
├── .vscode/
│ └── settings.json
├── eslint.config.js
└── src/
Пример:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Такой подход гарантирует одинаковое поведение редактора для всех участников команды.
Начиная с современных версий ESLint основной системой конфигурирования является Flat Config.
Пример:
export default [
{
files: ['**/*.js'],
rules: {
semi: ['error', 'always'],
quotes: ['error', 'single']
}
}
];
Автофикс функционирует независимо от типа конфигурации. Если правило
поддерживает исправление, оно будет автоматически применяться как при
запуске команды --fix, так и при сохранении файла через
редактор.
При использовании TypeScript обычно подключается специальный парсер и набор правил.
Установка:
npm install --save-dev \
eslint \
typescript \
typescript-eslint
Конфигурация:
import tseslint from 'typescript-eslint';
export default [
...tseslint.configs.recommended
];
После подключения расширения ESLint в редакторе автофикс начинает работать и для файлов:
.ts
.tsx
Исправляться будут как стандартные правила ESLint, так и правила TypeScript ESLint, поддерживающие механизм fix.
Иногда полезно увидеть список изменений до их записи в файл.
Для этого используется режим:
eslint src --fix-dry-run
Он выполняет анализ и вычисляет исправления без физического изменения файлов.
Дополнительно можно вывести результат в формате JSON:
eslint src --fix-dry-run --format json
Подобный режим часто применяется в CI/CD-пайплайнах и при разработке собственных правил.
Автоматические исправления не предназначены для изменения логики программы.
Например:
if (value == null) {
process(value);
}
Правило может рекомендовать использовать:
===
Однако ESLint не всегда способен безопасно заменить оператор автоматически, поскольку это может повлиять на поведение приложения.
По этой причине многие правила работают только в режиме предупреждения и требуют ручного вмешательства разработчика.
Часто создаются отдельные команды в package.json.
Пример:
{
"scripts": {
"lint": "eslint src",
"lint:fix": "eslint src --fix"
}
}
Использование:
npm run lint
или
npm run lint:fix
Наличие отдельной команды позволяет быстро привести проект к единому стилю даже без открытия редактора.
В командной разработке распространена практика запуска ESLint перед созданием коммита.
Установка инструментов:
npm install --save-dev husky lint-staged
Пример конфигурации:
{
"lint-staged": {
"*.js": [
"eslint --fix"
]
}
}
Алгоритм работы:
Такой подход существенно снижает количество стилистических замечаний во время проверки кода.
Современная практика предполагает разделение обязанностей:
Установка:
npm install --save-dev \
eslint \
prettier \
eslint-config-prettier
Конфигурация:
import eslintConfigPrettier from 'eslint-config-prettier';
export default [
eslintConfigPrettier
];
После настройки сохранение файла обычно приводит к следующему результату:
Если исправления не применяются после сохранения файла, необходимо проверить несколько факторов.
Наличие расширения ESLint:
ESLint Extension
Работоспособность линтера:
npx eslint src
Корректность конфигурации:
eslint.config.js
Настройки VS Code:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Журнал работы расширения:
View → Output → ESLint
В большинстве случаев проблема связана с одной из следующих причин:
.eslintignore или настройки
конфигурации.Использование автофикса на сохранение позволяет поддерживать единый стиль кода без дополнительных действий.
Хранение настроек в репозитории обеспечивает одинаковое поведение редактора у всей команды.
Разделение ответственности между ESLint и Prettier уменьшает количество конфликтующих правил.
Проверка кода через Git-хуки гарантирует попадание в репозиторий уже исправленного кода.
Регулярное применение команды
eslint --fix помогает быстро устранять
накопившиеся стилистические нарушения и поддерживать кодовую базу в
консистентном состоянии.