Variabili globali in Javascript e ESLint


102

Ho più file javascript e ho definito alcune variabili globali in un file che viene caricato prima degli altri. Di conseguenza tutti i file caricati dopo il primo hanno accesso alla variabile globale. Tuttavia ESLint mostra la variabile globale come "non definita". Non voglio cambiare le regole di ESLint e vorrei trovare un modo elegante per sbarazzarmi di questi messaggi di errore. Qualche indizio? Grazie


4
-> eslint.org/docs/user-guide/configuring#specifying-globals . La documentazione di ESLint è ottima IMO, dovresti dare un'occhiata a questo.
Felix Kling

Risposte:


115

Non credo che l'hacking delle regole ESLint per file sia una grande idea.

Dovresti piuttosto definire globalsin .eslintrco package.json.

Per .eslintrc:

"globals": {
    "angular": true
}

Per package.json:

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

PS

Leggere la documentazione è una virtù obbligatoria per gli sviluppatori

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


7
Può valere la pena notare che si imposta la variabile globale su truese è possibile assegnare la variabile a qualcos'altro e falsese non deve essere riassegnata.
RedSparr0w

6
Il collegamento della documentazione è una virtù molto apprezzata nelle risposte di stackoverflow.
Romain G

@RomainG c'è già un link sotto;) Ma ne aggiungerò uno per te
v-andrew

87

Puoi aggiungere valori globali per file o nel tuo file config. Se non vuoi cambiare la tua configurazione, dovrai aggiungere le variabili globali usate in ogni file.

Per specificare le variabili globali utilizzando un commento all'interno del file JavaScript, utilizza il seguente formato:

/* global var1, var2 */

Questo definisce due variabili globali var1e var2. Se si desidera specificare facoltativamente che queste variabili globali non devono mai essere scritte (solo lette), è possibile impostarle ciascuna con un falso flag:

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

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.