ESLint não está funcionando para mim no VS Code. Eu tenho o plugin instalado no VS Code, e o próprio ESLint como uma dependência do desenvolvedor em meu package.json, que também instalei.
Modifiquei a seguinte opção nas configurações de usuário do código VS:
{
"eslint.options": { "configFile": "C:/mypath" }
}
Usei o comando eslint --init
para adicionar o básico .eslintrc.json
ao diretório principal do meu pacote.
Outras pessoas foram capazes de obter feedback ESLint do VS Code usando exatamente o mesmo pacote com o mesmo arquivo de configuração ESLint.
Não recebi nenhum feedback de qualquer tipo ao quebrar diretamente várias regras que foram incluídas no conjunto de regras recomendado que está, por padrão, dentro do .eslintrc.json
arquivo.
o que estou perdendo?
Edit: Eu testei usando ESLint via linha de comando, e tudo funcionou conforme o esperado, com os erros encontrados onde deveriam, porém, esses mesmos erros nunca apareceram no VS Code. O problema parece estar do lado do VS Code e não do ESLint.
fonte
./node_modules/.bin/eslint --init
Respostas:
Existem alguns motivos pelos quais a ESLint pode não estar lhe dando feedback. ESLint vai procurar seu arquivo de configuração primeiro em seu projeto e se não encontrar um .eslintrc.json lá, ele vai procurar por uma configuração global. Pessoalmente, eu apenas instalo o ESLint em cada projeto e crio uma configuração baseada em cada projeto.
A segunda razão pela qual você não está recebendo feedback é que, para obtê-lo, você precisa definir suas regras de linting no .eslintrc.json. Se não houver regras lá, ou se você não tiver nenhum plug-in instalado, será necessário defini-los.
fonte
.eslintrc.json
já coloquei o local na pasta principal do meu projeto, e minhas regras estendem as regras recomendadas pela ESLint, que são as que eu estava testando. Também adicionei algumas regras minhas para testes adicionais, mas sem sucesso.Se o ESLint estiver sendo executado no terminal, mas não dentro do VSCode, é provável que a extensão não seja capaz de detectar as
node_modules
pastas local e global .Para verificar, pressione Ctrl+ Shift+ Uno VSCode para abrir o
Output
painel após abrir um arquivo JavaScript com umeslint
problema conhecido . Se mostrarFailed to load the ESLint library for the document {documentName}.js
-ou- se aProblems
guia mostrar um erro ou um aviso que se refere aeslint
, então o VSCode está tendo um problema ao tentar detectar o caminho.Em caso afirmativo, defina-o manualmente
eslint.nodePath
definindo nas configurações do VSCode (settings.json
). Forneça a ele o caminho completo (por exemplo, como"eslint.nodePath": "C:\\Program Files\\nodejs",
) - o uso de variáveis de ambiente não é suportado atualmente.Esta opção foi documentada na página de extensão ESLint .
fonte
No meu caso, como eu estava usando TypeScript com React, a correção foi simplesmente dizer ao ESLint para validar também esses arquivos. Isso precisa ir nas configurações do usuário:
"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],
fonte
configurar diretórios de trabalho resolveu para mim, já que eu tinha vários projetos com
.eslintrc
arquivos abertos na mesma janela.Coloque isso no seu
.vscode/settings.json
"eslint.workingDirectories": [ "./backend", "./frontend" ],
graças a esse cara no github: https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-542592372
PS: comando útil para listar todos os subdiretórios contendo um
.eslintrc
except / node_modules:find . .eslintrc | grep .eslintrc | grep -v node_modules
fonte
No meu caso, eu não tinha instalado a extensão ESLint no VSCode, o que estava causando o problema. Fiz isso e começou a funcionar novamente.
fonte
Reiniciar o VSCode funcionou para mim.
fonte
Se você estiver usando uma instalação global do ESLint, quaisquer plug-ins usados em sua configuração também devem ser instalados globalmente. Da mesma forma, para instalação local. Se você instalou localmente e configurou corretamente localmente, mas o eslint não está funcionando, tente reiniciar seu IDE. Isso só aconteceu comigo com VScode.
fonte
Eu tive um problema semelhante no Windows, porém às vezes o eslint funcionava (no vscode) às vezes não. Mais tarde, percebi que funciona bem depois de um tempo. Estava relacionado a este problema: servidor eslint leva cerca de 3-5 minutos até estar disponível
Definir a variável de ambiente
NO_UPDATE_NOTIFIER=1
resolveu o problemafonte
Estou dando a resposta assumindo que você já definiu regras na raiz do projeto local com .eslintrc e .eslintignore . Depois de instalar o VSCode Eslint Extension, várias configurações precisam ser feitas em settings.json para vscode
eslint.enable: true
eslint.nodePath: <directory where your extensions available>
Instalar o eslint local como uma dependência do projeto é o último ingrediente para que isso funcione. considere não instalar o eslint como global, o que pode entrar em conflito com o pacote instalado localmente.
fonte
Tive um problema semelhante com o eslint dizendo que ele estava '... ainda não validando nenhum arquivo', mas nada foi relatado no console de problemas do VS Code. No entanto, após atualizar o VS Code para a versão mais recente (1.32.1) e reiniciar, o eslint começou a funcionar.
fonte
No meu caso, o ESLint foi desabilitado em meu espaço de trabalho. Tive que habilitá-lo nas configurações de extensões vscode.
fonte
Já que você consegue lint com sucesso via linha de comando, o problema está mais provavelmente na configuração do plugin ESLint .
Assumindo que a extensão está instalada corretamente, verifique todas as propriedades de configuração relacionadas ao ESLint no projeto (espaço de trabalho) e no settings.json definido pelo usuário (global).
Existem algumas coisas que podem estar configuradas incorretamente em seu caso específico; para mim, o JavaScript estava desabilitado depois de trabalhar com o TypeScript em outro projeto e meu settings.json global acabou ficando com o seguinte:
"eslint.validate": [ { "language": "typescript", "autoFix": true } ]
A partir daqui, foi uma solução simples:
"eslint.validate": [ { "language": "javascript", "autoFix": true }, { "language": "typescript", "autoFix": true } ]
Isso é tão comum que alguém escreveu um post de blog direto sobre o ESLint não funcionar no VS Code . Eu apenas adicionaria, verificar seu settings.json de usuário global antes de substituir a configuração do espaço de trabalho local.
fonte
"javascriptreact"
e"typescriptreact"
já que meu projeto usa React.javascript
ejavascriptreact
são valores padrão, mas acho que você precisaria*scriptreact
adicionar novamente para os arquivos JSX.No meu caso, definir eslint validate para: "eslint.validate": ["javascript", "javascriptreact", "html", "typescriptreact"] funcionou.
fonte
Eu uso Use Prettier Formatter e a extensão ESLint VS Code juntos para codificação e formatação.
agora instale alguns pacotes usando o comando fornecido, se mais pacotes forem necessários, eles serão exibidos com o comando de instalação como um erro no terminal para você, instale-os também.
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
agora crie um novo nome de arquivo .prettierrc no diretório inicial do seu projeto, usando este arquivo você pode definir as configurações da extensão mais bonita, minhas configurações estão abaixo:
{ "singleQuote": true }
agora quanto ao ESlint você pode configurá-lo de acordo com sua necessidade, estou aconselhando você a ir ao site do Eslint ver as regras ( https://eslint.org/docs/rules/ )
Agora crie um arquivo de nome .eslintrc.json no diretório inicial do seu projeto, usando esse arquivo você pode configurar o eslint, minhas configurações estão abaixo:
{ "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" }] } }
fonte
No meu caso, não estava funcionando porque eu tinha adicionado apenas uma pasta do monorepo ao projeto, mesmo tendo o
package.json
e a extensão configurados. Trabalhei apenas quando adicionei todo o projeto (que continha opackage.json
arquivo) ao VS Code.fonte
Se você estiver desenvolvendo um projeto com eslint como uma dependência package.json, certifique-se de executá-lo
npm install
. Isso resolveu para mim.fonte
Para mim, eu desativei acidentalmente o ESLint quando algum prompt foi mostrado por ele.
As etapas abaixo corrigiram isso para mim
Shift + Command + P
e selecioneESLint: Disabled ESLint
Shift + Command + P
e selecioneESLint: Show Output Channel
fonte
Vá para o arquivo settings.json, adicione o seguinte e corrija o eslint.nodepath. Adapte-o às suas preferências.
// 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"],
fonte