Globale Variablen in Javascript und ESLint


100

Ich habe mehrere Javascript-Dateien und ich habe eine globale Variable in einer Datei definiert, die vor den anderen geladen wird. Infolgedessen haben alle nach dem ersten geladenen Dateien Zugriff auf die globale Variable. ESLint zeigt die globale Variable jedoch als "nicht definiert" an. Ich möchte die Regeln von ESLint nicht ändern und möchte einen eleganten Weg finden, um diese Fehlermeldungen zu beseitigen. Irgendeine Ahnung? Vielen Dank


4
-> eslint.org/docs/user-guide/configuring#specifying-globals . Die Dokumentation von ESLint ist großartig, IMO, das sollten Sie sich ansehen.
Felix Kling

Antworten:


113

Ich halte es nicht für eine großartige Idee, ESLint-Regeln pro Datei zu hacken.

Sie sollten lieber globalsin .eslintrcoder definieren package.json.

Für .eslintrc:

"globals": {
    "angular": true
}

Für package.json:

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

PS

Das Lesen von Dokumentationen ist für Entwickler eine obligatorische Tugend

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


7
Es kann erwähnenswert sein, dass Sie die globale Variable auf setzen, truewenn Sie die Variable etwas anderem zuweisen können und falsewenn sie nicht neu zugewiesen werden sollte.
RedSparr0w

6
Das Verknüpfen von Dokumentation ist eine Tugend, die bei Stackoverflow-Antworten sehr geschätzt wird.
Romain G

@RomainG gibt es bereits Link unten;) Aber ich werde einen für Sie hinzufügen
v-andrew

85

Sie können Globals entweder pro Datei oder in Ihrer Konfiguration hinzufügen. Wenn Sie Ihre Konfiguration nicht ändern möchten, müssen Sie die verwendeten Globals in jede Datei einfügen.

Verwenden Sie das folgende Format, um Globals mithilfe eines Kommentars in Ihrer JavaScript-Datei anzugeben:

/* global var1, var2 */

Dies definiert zwei globale Variablen var1und var2. Wenn Sie optional angeben möchten, dass diese globalen Variablen niemals geschrieben (nur gelesen) werden sollen, können Sie jede mit einem falschen Flag setzen:

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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.