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
}
}
Hay un
environment: browser
que incluye
window
.
Ejemplo
.eslintrc.json
:
"env": {
"browser": true,
"node": true,
"jasmine": true
},
Más información: http://eslint.org/docs/user-guide/configuring.html#specifying-environments
Consulte también
la respuesta
package.json
de chevin99 a
continuación.
Lo encontré en esta página: http://eslint.org/docs/user-guide/configuring
En package.json, esto funciona:
"eslintConfig": {
"globals": {
"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
}
}