ESLint не работает в VS Code?

ESLint не работает для меня в VS Code. У меня есть плагин, установленный в VS Code, и ESLint сам по себе как зависимость разработчика в моем пакете. Json, который я также установил.

Я изменил следующий параметр в пользовательских настройках VS Code:

{
  "eslint.options": { "configFile": "C:/mypath" }
}

Я использую команду eslint --init, чтобы добавить базовый .eslintrc.json в основной каталог моего пакета.

Другие люди смогли получить обратную связь ESLint от VS Code, используя тот же самый пакет с одним и тем же конфигурационным файлом ESLint.

Я не получал никакой обратной связи ни при каких условиях, когда сразу нарушал несколько правил, которые были включены в рекомендуемый набор правил, который по умолчанию находится внутри файла .eslintrc.json.

Что мне не хватает?

Изменить: я тестировал с помощью ESLint через командную строку, и все работало, как ожидалось, с ошибками, найденными там, где они должны были быть, однако эти же ошибки никогда не появлялись в VS Code. Проблема, похоже, связана с VS Code, а не с ESLint.

Ответ 1

Есть несколько причин, по которым ESLint может не дать вам обратной связи. ESLint будет искать ваш файл конфигурации сначала в вашем проекте, и если он не сможет найти .eslintrc.json, он будет искать глобальную конфигурацию. Лично я устанавливаю ESLint только в каждом проекте и создаю конфигурацию, основанную на каждом проекте.

Вторая причина, по которой вы не получаете обратную связь, заключается в том, что для получения обратной связи вы должны определить свои правила перебора в .eslintrc.json. Если там нет правил или у вас нет плагинов, вы должны их определить.

Ответ 2

Если ESLint работает в терминале, но не внутри VSCode, вероятно, что расширение не сможет обнаружить библиотеку ESLint из папок локального и глобального узловых модулей.

Чтобы проверить, нажмите CTRL + SHIFT + U в VSCode, чтобы перейти к панели "Вывод" после открытия файла JS в вашем проекте. Если отображается "Не удалось загрузить библиотеку ESLint для документа {{documentName}}. Js", значит, при попытке определить путь возникла проблема.

Если да, то установите его вручную, настроив "eslint.nodePath" в настройках. Дайте ему полный путь; использование переменных среды в настоящее время не поддерживается. Эта опция была задокументирована на странице расширения ESLint.

Ответ 3

В моем случае, поскольку я использовал TypeScript с React, исправление было просто сказать ESLint также проверить эти файлы. Это должно идти в ваших пользовательских настройках:

"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],

Ответ 4

В моем случае я не установил расширение ESLint в VSCode, что вызывало проблему. Сделал это и снова начал работать.

Ответ 5

Если вы используете глобальную установку ESLint, любые плагины, используемые в вашей конфигурации, также должны быть установлены глобально. Как мудрый для локальной установки. если вы установили локально и правильно настроены локально, но eslint не работает, попробуйте перезапустить вашу среду IDE. Это произошло со мной с помощью VScode.

Ответ 6

У меня была похожая проблема на Windows, однако иногда eslint работал (в vscode) иногда нет. Позже я понял, что через некоторое время все работает нормально. Это было связано с этой проблемой: Eslint сервер занимает ~ 3-5 минут, пока доступно

Установка переменной NO_UPDATE_NOTIFIER=1 решила проблему

Ответ 7

У меня была похожая проблема с eslint, сказавшим, что это "... еще не проверял какие-либо файлы", но ничего не сообщалось в консоли проблем VS Code. Однако после обновления VS Code до последней версии (1.32.1) и перезапуска eslint начал работать.

Ответ 8

Я даю ответ, предполагая, что вы уже определили правила в локальном корне проекта с помощью .eslintrc и .eslintignore. После установки VSCode Eslint Extension несколько настроек, которые нужно сделать в settings.json для vscode

eslint.enable: true
eslint.nodePath: <directory where your extensions available>

Установка eslint local в качестве зависимости проекта является последним компонентом для этого. Не устанавливайте eslint как глобальный, который может конфликтовать с вашим локальным установленным пакетом.

Ответ 9

В моем случае это не сработало, потому что я добавил в проект только одну папку monorepo, хотя у меня были настроены package.json и расширение. Я работал только тогда, когда я добавил весь проект (который содержал файл package.json) в код VS.

Ответ 10

В моем случае ESLint был отключен в моей рабочей области. Мне пришлось включить его в настройках расширений vscode.

Ответ 11

В моем случае настройки eslint подтверждают: "eslint.validate": ["javascript", "javascriptreact", "html", "typescriptreact"], сделал работу.

Ответ 12

Перезапуск VSCode работал для меня.

Ответ 13

Если вы правильно настроили и уверены, что все ваши настройки верны, но eslint все еще не работает, возможно, вам следует попробовать переустановить VSCode. Работает как шарм для меня.