Variables globales en Javascript et ESLint

100

J'ai plusieurs fichiers javascript et j'ai défini une variable globale dans un fichier qui se charge avant les autres. En conséquence, tous les fichiers chargés après le premier ont accès à la variable globale. Cependant ESLint affiche la variable globale comme "non définie". Je ne veux pas changer les règles d'ESLint et j'aimerais trouver un moyen élégant de me débarrasser de ces messages d'erreur. Un indice? Merci

marco_sap
la source
4
-> eslint.org/docs/user-guide/configuring#specifying-globals . La documentation d'ESLint est excellente IMO, vous devriez y jeter un coup d'œil.
Felix Kling

Réponses:

114

Je ne pense pas que le piratage des règles ESLint par fichier soit une bonne idée.

Vous devriez plutôt définir globalsdans .eslintrcou package.json.

Pour .eslintrc:

"globals": {
    "angular": true
}

Pour package.json:

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

PS

La lecture de la documentation est une vertu obligatoire pour les développeurs

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

v-andrew
la source
7
Il peut être intéressant de noter que vous définissez la variable globale sur truesi vous pouvez affecter la variable à autre chose et falsesi elle ne doit pas être réaffectée.
RedSparr0w
6
Lier la documentation est une vertu très appréciée sur les réponses stackoverflow.
Romain G
@RomainG il y a déjà un lien ci-dessous;) Mais je vais en ajouter un pour vous
v-andrew
87

Vous pouvez ajouter des globaux soit par fichier, soit dans votre configuration. Si vous ne souhaitez pas modifier votre configuration, vous devrez ajouter les globaux utilisés dans chaque fichier.

Pour spécifier des globaux à l'aide d'un commentaire à l'intérieur de votre fichier JavaScript, utilisez le format suivant:

/* global var1, var2 */

Cela définit deux variables globales, var1et var2. Si vous souhaitez éventuellement spécifier que ces variables globales ne doivent jamais être écrites (uniquement en lecture), vous pouvez définir chacune avec un faux drapeau:

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

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

DarkLegend
la source