ESLint no me funciona en VS Code. Tengo el complemento instalado en VS Code y ESLint en sí mismo como una dependencia de desarrollador en mi package.json, que también he instalado.
Modifiqué la siguiente opción en la configuración de usuario del código VS:
{
"eslint.options": { "configFile": "C:/mypath" }
}
He usado el comando eslint --init
para agregar lo básico .eslintrc.json
al directorio principal de mi paquete.
Otras personas pudieron obtener comentarios de ESLint de VS Code utilizando exactamente el mismo paquete con el mismo archivo de configuración de ESLint.
No he recibido comentarios de ningún tipo al romper directamente varias reglas que estaban incluidas en el conjunto de reglas recomendado que se encuentra por defecto dentro del .eslintrc.json
archivo.
¿Qué me estoy perdiendo?
Editar: He probado el uso de ESLint a través de la línea de comando, y todo funcionó como se esperaba, con los errores encontrados donde deberían haberlo hecho, sin embargo, estos mismos errores nunca aparecieron en VS Code. El problema parece estar del lado de VS Code y no de ESLint.
fuente
./node_modules/.bin/eslint --init
Respuestas:
Hay algunas razones por las que ESLint puede no proporcionarle comentarios. ESLint buscará primero su archivo de configuración en su proyecto y si no puede encontrar un .eslintrc.json allí, buscará una configuración global. Personalmente, solo instalo ESLint en cada proyecto y creo una configuración basada en cada proyecto.
La segunda razón por la que no recibe comentarios es que, para obtenerlos, debe definir sus reglas de borrado en .eslintrc.json. Si no hay reglas allí, o no tiene complementos instalados, debe definirlos.
fuente
.eslintrc.json
en la carpeta principal de mi proyecto, y mis reglas amplían las reglas recomendadas por ESLint, que son las que estaba probando. También agregué algunas reglas propias para probarlas más, pero sin éxito.Si ESLint se está ejecutando en la terminal pero no dentro de VSCode, probablemente se deba a que la extensión no puede detectar las
node_modules
carpetas locales y globales .Para verificar, presione Ctrl+ Shift+ Uen VSCode para abrir el
Output
panel después de abrir un archivo JavaScript con uneslint
problema conocido . Si muestraFailed to load the ESLint library for the document {documentName}.js
-o- si laProblems
pestaña muestra un error o una advertencia que hace referencia aeslint
, entonces VSCode tiene un problema al intentar detectar la ruta.Si es así, configúrelo manualmente configurando
eslint.nodePath
en la configuración de VSCode (settings.json
). Déle la ruta completa (por ejemplo, me gusta"eslint.nodePath": "C:\\Program Files\\nodejs",
); actualmente, no se admite el uso de variables de entorno.Esta opción se ha documentado en la página de extensión de ESLint .
fuente
En mi caso, dado que estaba usando TypeScript con React, la solución fue simplemente decirle a ESLint que también validara estos archivos. Esto debe ir en la configuración de usuario:
"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],
fuente
La configuración de directorios de trabajo me solucionó, ya que tenía varios proyectos con
.eslintrc
archivos propios abiertos en la misma ventana.Pon esto en tu
.vscode/settings.json
"eslint.workingDirectories": [ "./backend", "./frontend" ],
gracias a este chico en github: https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-542592372
PD: comando útil para enumerar todos los subdirectorios que contienen un
.eslintrc
except / node_modules:find . .eslintrc | grep .eslintrc | grep -v node_modules
fuente
En mi caso, no había instalado la extensión ESLint en VSCode, lo que estaba causando problemas. Lo hice y empezó a funcionar de nuevo.
fuente
Reiniciar VSCode funcionó para mí.
fuente
Si está utilizando una instalación global de ESLint, todos los complementos utilizados en su configuración también deben instalarse globalmente. Lo mismo ocurre con la instalación local. Si ha instalado localmente y configurado correctamente localmente, pero eslint no funciona, intente reiniciar su IDE. Esto me acaba de pasar con VScode.
fuente
Tuve un problema similar en Windows, sin embargo, a veces eslint funcionó (en vscode) a veces no. Más tarde me di cuenta de que funciona bien después de un tiempo. Estaba relacionado con este problema: el servidor eslint tarda entre 3 y 5 minutos en estar disponible
La configuración de la variable de entorno
NO_UPDATE_NOTIFIER=1
resolvió el problemafuente
Estoy dando la respuesta asumiendo que ya ha definido reglas en la raíz de su proyecto local con .eslintrc y .eslintignore . Después de instalar VSCode Eslint Extension, varias configuraciones que deben realizarse en settings.json para vscode
eslint.enable: true
eslint.nodePath: <directory where your extensions available>
La instalación de eslint local como una dependencia del proyecto es el último ingrediente para que esto funcione. considere no instalar eslint como global, lo que podría entrar en conflicto con su paquete instalado localmente.
fuente
Tuve un problema similar con eslint diciendo que era '... no validando ningún archivo todavía', pero no se informó nada en la consola de problemas de VS Code. Sin embargo, después de actualizar VS Code a la última versión (1.32.1) y reiniciar, eslint comenzó a funcionar.
fuente
En mi caso, ESLint estaba deshabilitado en mi espacio de trabajo. Tuve que habilitarlo en la configuración de extensiones de vscode.
fuente
Dado que puede lint con éxito a través de la línea de comandos, es muy probable que el problema esté en la configuración del complemento ESLint .
Suponiendo que la extensión esté instalada correctamente, consulte todas las propiedades de configuración relacionadas con ESLint tanto en el proyecto (espacio de trabajo) como en el archivo settings.json definido por el usuario (global).
Hay algunas cosas que podrían estar mal configuradas en su caso particular; para mí, JavaScript estaba deshabilitado después de trabajar con TypeScript en otro proyecto y mi settings.json global terminó pareciendo lo siguiente:
"eslint.validate": [ { "language": "typescript", "autoFix": true } ]
Desde aquí fue una solución simple:
"eslint.validate": [ { "language": "javascript", "autoFix": true }, { "language": "typescript", "autoFix": true } ]
Esto es tan común que alguien escribió una publicación de blog sencilla sobre ESLint que no funciona en VS Code . Solo agregaría, verifique su configuración de usuario global.json antes de anular la configuración del espacio de trabajo local.
fuente
"javascriptreact"
y"typescriptreact"
dado que mi proyecto usa React.javascript
yjavascriptreact
son valores predeterminados, pero creo que debería haberlos*scriptreact
agregado nuevamente para archivos JSX.En mi caso, configurar eslint validate en: "eslint.validate": ["javascript", "javascriptreact", "html", "typescriptreact"], hizo el trabajo.
fuente
Utilizo Use Prettier Formatter y la extensión ESLint VS Code juntas para el código y el formateo.
ahora instale algunos paquetes usando el comando dado, si se requieren más paquetes, se mostrarán con el comando de instalación como un error en el terminal para usted, por favor instálelos también.
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
ahora cree un nuevo nombre de archivo .prettierrc en el directorio de inicio de su proyecto, usando este archivo puede configurar los ajustes de la extensión más bonita, mis configuraciones están a continuación:
{ "singleQuote": true }
ahora en cuanto a ESlint puedes configurarlo de acuerdo a tus requerimientos, te recomiendo que vayas al sitio web de Eslint ver las reglas ( https://eslint.org/docs/rules/ )
Ahora cree un nombre de archivo .eslintrc.json en el directorio de inicio de su proyecto, usando ese archivo puede configurar eslint, mis configuraciones están a continuación:
{ "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" }] } }
fuente
En mi caso, no funcionó porque había agregado solo una carpeta del monorepo al proyecto, a pesar de que tenía
package.json
configurada la extensión y la. Trabajé solo cuando agregué todo el proyecto (que contenía elpackage.json
archivo) al Código VS.fuente
Si está desarrollando un proyecto con eslint como dependencia de package.json, asegúrese de ejecutar
npm install
. Eso me lo arregló.fuente
Para mí, deshabilité accidentalmente ESLint cuando me mostró algún mensaje.
Hacer los pasos a continuación lo solucionó para mí
Shift + Command + P
y seleccioneESLint: Disabled ESLint
Shift + Command + P
y seleccioneESLint: Show Output Channel
fuente
Vaya a su archivo settings.json, agregue lo siguiente y corrija el eslint.nodepath. Adáptelo a sus propias preferencias.
// 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"],
fuente