Variables globales en Javascript y ESLint


100

Tengo varios archivos javascript y he definido alguna variable global en un archivo que se carga antes que los demás. Como consecuencia, todos los archivos cargados después del primero tienen acceso a la variable global. Sin embargo, ESLint muestra la variable global como "no definida". No quiero cambiar las reglas de ESLint y me gustaría encontrar una forma elegante de deshacerme de estos mensajes de error. ¿Cualquier pista? Gracias


4
-> eslint.org/docs/user-guide/configuring#specifying-globals . La documentación de ESLint es excelente en mi opinión, deberías echarle un vistazo.
Felix Kling

Respuestas:


114

No creo que hackear las reglas de ESLint por archivo sea una gran idea.

Más bien debería definir globalsen .eslintrco package.json.

Para .eslintrc:

"globals": {
    "angular": true
}

Para package.json:

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

PD

Leer documentación es una virtud obligatoria para los desarrolladores

https://eslint.org/docs/user-guide/configuring#specifying-globals


7
Vale la pena señalar que establece la variable global en truesi puede asignar la variable a otra cosa y falsesi no debe reasignarse.
RedSparr0w

6
Vincular la documentación es una virtud que se aprecia mucho en las respuestas de stackoverflow.
Romain G

@RomainG ya hay un enlace a continuación;) Pero agregaré uno para usted
v-andrew

87

Puede agregar globales por archivo o en su configuración. Si no desea cambiar su configuración, tendrá que agregar los globales usados ​​en cada archivo.

Para especificar globales usando un comentario dentro de su archivo JavaScript, use el siguiente formato:

/* global var1, var2 */

Esto define dos variables globales var1y var2. Si desea especificar opcionalmente que estas variables globales nunca deben escribirse (solo leer), puede configurar cada una con una bandera falsa:

/* global var1:false, var2:false */

http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.