vscode react configurar como atom eslint

react - ESLint-"ventana" no está definida. Cómo permitir variables globales en package.json



eslint rules (6)

Estoy asignando una propiedad al objeto de ventana global, pero cuando ejecuto eslint, obtengo esto:

"ventana" no está definida

Veo esto aquí en los documentos de eslint :

A continuación se define la ventana como una variable global para el código que no debe activar la regla que se está probando:

valid: [ { code: "window.alert()", globals: [ "window" ] } ]

Intenté agregar algo como esto al archivo package.json para que eslint allow "window" como una variable global, pero debo estar haciendo algo mal. Según los documentos, parece que podría necesitar hacer algo como esto en un archivo separado, pero ¿hay alguna manera de definir algunas variables globales permitidas directamente en el archivo package.json?


Agregue .eslintrc en la raíz del proyecto.

{ "globals": { "document": true, "foo": true, "window": true } }




Sé que no está pidiendo la versión en línea . Pero dado que esta pregunta tiene casi 100k visitas y caí aquí buscando eso, la dejaré aquí para el próximo compañero codificador:

Asegúrese de que ESLint no se ejecute con el indicador --no-inline-config (si esto no le suena familiar, es probable que esté listo). Luego, escriba esto en su código (para mayor claridad y convención, escríbalo en la parte superior del archivo):

/* eslint-env browser */

Esto le dice a ESLint que su entorno de trabajo es un navegador, por lo que ahora sabe qué cosas hay en un navegador y se adapta en consecuencia.

Hay muchos environments y puede usar más de uno al mismo tiempo, por ejemplo, en línea:

/* eslint-env browser, node */

o en el archivo de configuración de su ESLint.

De sus documentos :

Un entorno define variables globales que están predefinidas. Los entornos disponibles son:

  • browser : variables globales del navegador.
  • node : variables globales de Node.js y alcance de Node.js.
  • commonjs : variables globales de CommonJS y alcance de CommonJS (use esto para el código de solo navegador que usa Browserify / WebPack).
  • shared-node-browser - Globales comunes tanto a Node como a Browser.

[...]

Además de los entornos, puede hacer que ignore casi todo lo que desee. Si le advierte sobre el uso de console.log() pero aún así lo desea, simplemente en línea:

/* eslint-disable no-console */

Puede ver la lista de todas las reglas , incluidas las reglas recomendadas para las mejores prácticas de codificación .


Si está utilizando Angular , puede hacerlo con:

"env": { "browser": true, "node": true }, "rules" : { "angular/window-service": 0 }


Su .eslintrc.json debe contener el texto a continuación.
De esta manera, ESLint conoce sus variables globales.

{ "env": { "browser": true, "node": true } }