2015-05-22 5 views
108

Ich bin eine Eigenschaft zum globalen Fensterobjekt zuweisen, aber wenn ich eslint laufen, bekomme ich diese:ESLint - "Fenster" ist nicht definiert. Wie zu ermöglichen, globale Variablen in package.json

„Fenster“ ist nicht definiert

ich sehe das here in the eslint docs:

folgendes definiert Fenster als globale Variable für Code, der nicht die Regel getestet wird, ausgelöst werden soll:

Ich habe versucht, etwas wie diese zu der package.json Datei hinzuzufügen, um eslint erlauben "Fenster" als globale Variable, aber ich muss etwas falsch machen. Aus den Dokumenten scheint es, als müsste ich etwas in einer separaten Datei machen, aber gibt es eine Möglichkeit, einige erlaubte globale Variablen direkt in der Datei package.json zu definieren?

+0

FYI, wenn Sie Knoten verwenden und wollen ESLint 'erkennen global' dann müssen Sie sicherstellen,' „Knoten“: true' wird unter dem '" env "Konfiguration. –

Antwort

78

fand ich es auf dieser Seite: http://eslint.org/docs/user-guide/configuring

In package.json, das funktioniert:

"eslintConfig": { 
    "globals": { 
    "window": true 
    } 
} 
+35

Der richtige Weg ist, "env" zu benutzen: {"browser": true} – Nicolas

+0

@Nicolas, yep, ich hätte wahrscheinlich die Methode benutzt, die du vorgeschlagen hast, wenn ich das zuerst gefunden habe, aber diese Antwort ist Am wenigsten nützlich, wenn Sie zeigen, dass Sie Ihre eslint-Konfiguration in package.json haben können. – chevin99

+3

Es ist auch möglich, Globals für eslint wie folgt inline:/* global angular: true */ – Mirko

41

Sie können diese Globals nicht in package.json angeben. Fügen Sie eine .eslintrc in dem Projektstamm hinzu.

Geben Sie Globals wie diese

{ 
    "globals": { 
    "document": true, 
    "foo": true, 
    "window": true 
    } 
} 
+0

Ich nehme an, Sie meinen "package.json", wenn Sie sagen "Projekt. Json ". Die Verwendung einer .eslintrc-Datei kann der bevorzugte Weg sein, aber es ist möglich, die Konfiguration in "package.json" mit dem Objekt "eslintConfig" anzugeben, wie in der anderen Antwort angegeben. – chevin99

+0

Irgendwie hat es nichts gebracht, die eslingConfig in package.json zu platzieren (abgesehen davon, dass sie konzeptionell falsch ist).Das Hinzufügen in .eslintrc.json funktioniert jedoch. – Petrunov

+1

@Petrunov '.eslintrc.json' kann einfach' .eslintrc' sein –

2

Wenn Sie Angular verwenden Sie mit ihm weg bekommen kann:

"env": { 
    "browser": true, 
    "node": true 
}, 
"rules" : { 
    "angular/window-service": 0 
} 
5

Ihre .eslintrc.json den folgenden Text enthalten sollte.
So kennt ESLint über Ihre globalen Variablen

{ 
"env": { 
    "browser": true, 
    "node": true 
    }                  
}