ESLint у меня не работает в VS Code. У меня есть плагин, установленный в VS Code, и сам ESLint как зависимость разработчика в моем package.json, который я также установил.
Я изменил следующий параметр в настройках пользователя VS Code:
{
"eslint.options": { "configFile": "C:/mypath" }
}
Я использую команду eslint --init
для добавления базового .eslintrc.json
файла в основной каталог моего пакета.
Другие люди смогли получить обратную связь ESLint от VS Code, используя тот же пакет с точно таким же файлом конфигурации ESLint.
Я не получил никакой обратной связи при прямом нарушении нескольких правил, которые все были включены в рекомендуемый набор правил, который по умолчанию находится внутри .eslintrc.json
файла.
Что мне не хватает?
Изменить: я тестировал использование ESLint через командную строку, и все работало, как ожидалось, с ошибками, обнаруженными там, где они должны были быть, однако эти же ошибки никогда не появлялись в VS Code. Проблема, похоже, связана с VS Code, а не с ESLint.
источник
./node_modules/.bin/eslint --init
Ответы:
Есть несколько причин, по которым ESLint может не предоставлять вам обратную связь. ESLint сначала будет искать ваш файл конфигурации в вашем проекте, и если он не может найти там .eslintrc.json, он будет искать глобальную конфигурацию. Лично я устанавливаю только ESLint в каждый проект и создаю конфигурацию на основе каждого проекта.
Вторая причина, по которой вы не получаете обратную связь, заключается в том, что для получения обратной связи вам необходимо определить свои правила линтинга в файле .eslintrc.json. Если там нет правил или у вас не установлены плагины, вы должны их определить.
источник
.eslintrc.json
файл уже помещен в основную папку моего проекта, и мои правила расширяют рекомендуемые правила ESLint, которые я тестировал. Я также добавил несколько собственных правил для дальнейшего тестирования, но безуспешно.Если ESLint работает в терминале, но не внутри VSCode, это, вероятно, связано с тем, что расширение не может обнаружить как локальные, так и глобальные
node_modules
папки.Для проверки нажмите Ctrl+ Shift+ Uв VSCode, чтобы открыть
Output
панель после открытия файла JavaScript с известнойeslint
проблемой. Если он показываетFailed to load the ESLint library for the document {documentName}.js
-или- если наProblems
вкладке отображается ошибка или предупреждение, о котором идет речьeslint
, то VSCode не может определить путь.Если да, то установите его вручную, настроив
eslint.nodePath
в настройках VSCode (settings.json
). Укажите ему полный путь (например, как"eslint.nodePath": "C:\\Program Files\\nodejs",
) - использование переменных среды в настоящее время не поддерживается.Эта опция задокументирована на странице расширения ESLint .
источник
В моем случае, поскольку я использовал TypeScript с React, исправление заключалось в том, чтобы просто сказать ESLint, чтобы он также проверял эти файлы. Это нужно сделать в ваших пользовательских настройках:
"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],
источник
Настройка рабочих каталогов решила эту проблему для меня, так как у меня было несколько проектов с
.eslintrc
открытыми собственными файлами в одном окне.Поместите это в свой
.vscode/settings.json
"eslint.workingDirectories": [ "./backend", "./frontend" ],
спасибо этому парню на github: https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-542592372
PS: полезная команда для
.eslintrc
вывода списка всех подкаталогов, содержащих исключение / node_modules:find . .eslintrc | grep .eslintrc | grep -v node_modules
источник
В моем случае я не установил расширение ESLint в VSCode, что вызывало проблемы. Сделал это, и он снова заработал.
источник
У меня сработал перезапуск VSCode.
источник
Если вы используете глобальную установку ESLint, любые плагины, используемые в вашей конфигурации, также должны быть установлены глобально. Как и для локальной установки. Если вы установили локально и правильно настроили локально, но eslint не работает, попробуйте перезапустить вашу IDE. Это случилось со мной только с VScode.
источник
У меня была аналогичная проблема с окнами, но иногда eslint работал (в vscode) иногда нет. Позже понял, что через некоторое время работает нормально. Это было связано с этой проблемой: сервер eslint становится доступным через ~ 3-5 минут.
Установка переменной окружения
NO_UPDATE_NOTIFIER=1
решила проблемуисточник
Я даю ответ, предполагая, что вы уже определили правила в корневом каталоге локального проекта с помощью .eslintrc и .eslintignore . После установки VSCode Eslint Extension несколько конфигураций, которые необходимо сделать в settings.json для vscode
eslint.enable: true
eslint.nodePath: <directory where your extensions available>
Установка eslint local в качестве зависимости проекта - последний ингредиент для работы. не рекомендуется устанавливать eslint как глобальный, так как это может конфликтовать с локальным установленным пакетом.
источник
У меня была аналогичная проблема с eslint, говоря, что это «… еще не проверяет какие-либо файлы», но в консоли проблем VS Code ничего не сообщалось. Однако после обновления VS Code до последней версии (1.32.1) и перезапуска eslint начал работать.
источник
В моем случае ESLint был отключен в моем рабочем пространстве. Пришлось включить его в настройках расширений vscode.
источник
Поскольку вы можете успешно выполнить lint через командную строку, проблема, скорее всего, связана с настройкой плагина ESLint .
Предполагая, что расширение установлено правильно, проверьте все свойства конфигурации, связанные с ESLint, как в проекте (рабочая область), так и в пользовательском (глобальном) файле settings.json.
Есть несколько вещей, которые могут быть неправильно сконфигурированы в вашем конкретном случае; для меня был отключен JavaScript после работы с TypeScript в другом проекте, и мой global settings.json выглядел следующим образом:
"eslint.validate": [ { "language": "typescript", "autoFix": true } ]
Отсюда это было простое исправление:
"eslint.validate": [ { "language": "javascript", "autoFix": true }, { "language": "typescript", "autoFix": true } ]
Это настолько распространено, что кто-то написал прямое сообщение в блоге о том, что ESLint не работает в VS Code . Я бы просто добавил: проверьте ваш глобальный пользователь settings.json перед тем, как переопределить конфигурацию локальной рабочей области.
источник
"javascriptreact"
и,"typescriptreact"
поскольку мой проект использует React.javascript
иjavascriptreact
являются значениями по умолчанию, но я думаю, вам нужно будет*scriptreact
добавить их обратно для файлов JSX.В моем случае установка eslint validate на: "eslint.validate": ["javascript", "javascriptreact", "html", "typescriptreact"] выполнила свою работу.
источник
Я использую вместе Use Prettier Formatter и ESLint VS Code для линтинга и форматирования кода.
теперь установите некоторые пакеты с помощью данной команды, если требуется больше пакетов, они будут отображаться с командой установки как ошибка в терминале для вас, пожалуйста, установите их также.
npm i eslint prettier eslint@^5.16.0 eslint-config-prettier eslint-plugin-prettier eslint-config-airbnb eslint-plugin-node eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks@^2.5.0 --save-dev
теперь создайте новое имя файла .prettierrc в домашнем каталоге вашего проекта, используя этот файл, вы можете настроить параметры расширения prettier, мои настройки ниже:
{ "singleQuote": true }
Теперь, что касается ESlint, вы можете настроить его в соответствии с вашими требованиями, я советую вам перейти на веб-сайт Eslint, чтобы увидеть правила ( https://eslint.org/docs/rules/ )
Теперь создайте файл с именем .eslintrc.json в домашнем каталоге вашего проекта, используя этот файл, вы можете настроить eslint, мои конфигурации ниже:
{ "extends": ["airbnb", "prettier", "plugin:node/recommended"], "plugins": ["prettier"], "rules": { "prettier/prettier": "error", "spaced-comment": "off", "no-console": "warn", "consistent-return": "off", "func-names": "off", "object-shorthand": "off", "no-process-exit": "off", "no-param-reassign": "off", "no-return-await": "off", "no-underscore-dangle": "off", "class-methods-use-this": "off", "prefer-destructuring": ["error", { "object": true, "array": false }], "no-unused-vars": ["error", { "argsIgnorePattern": "req|res|next|val" }] } }
источник
В моем случае это не сработало, потому что я добавил в проект только одну папку монорепозитория, хотя у меня были
package.json
настроены и расширение. Я работал только тогда, когда добавлял весь проект (содержащийpackage.json
файл) в VS Code.источник
Если вы разрабатываете проект с eslint в качестве зависимости package.json, обязательно запустите его
npm install
. Это исправило это для меня.источник
Что касается меня, я случайно отключил ESLint, когда он показал какое-то приглашение.
Выполнение следующих шагов исправило это для меня
Shift + Command + P
и выберитеESLint: Disabled ESLint
Shift + Command + P
и выберитеESLint: Show Output Channel
источник
Перейдите в файл settings.json, добавьте следующее и исправьте eslint.nodepath. Адаптируйте его к своим предпочтениям.
// PERSONAL "editor.codeActionsOnSaveTimeout": 2000, "editor.codeActionsOnSave": { "source.fixAll": true }, "editor.fontSize": 16, "editor.formatOnSave": true, "explorer.confirmDragAndDrop": true, "editor.tabSize": 2, "eslint.codeAction.showDocumentation": { "enable": true }, "eslint.nodePath": "C:\\{path}", "eslint.workingDirectories": ["./backend", "./frontend"],
источник
В моем случае
.eslintrc.json
файл находился внутри.vscode
папки. Как только я переместил его в корневую папку, ESLint начал работать правильно.источник