2013-07-17 4 views
58

In meinem Projekt definiert sind wir einige globale Variablen, die als Container arbeiten:Wie JSLint/JSHint mitteilen, welche Variablen global bereits

MyProject.MyFreature.someFunction = function() { ... } 

Also dann verwende ich das Skript über die Website und JSLint/JSHint beschwert sich über dass:

‚MyProject‘ ist nicht

ich weiß definiert, dass ich zu jeder JavaScript-Datei gehen und den Kommentar hinzufügen /*global MyProject*/ oben drauf. Aber ich suche nach einer Möglichkeit, diesen Kommentar in einer Art Konfigurationsdatei zu definieren, damit ich nicht Datei für Datei diesen Kommentar hinzufügen muss.

Irgendeine Art von Option in der config/jshint.yml wäre nett.

+0

Verwenden Sie die Web-Anwendungen (zB http://www.jshint.com/) oder führen Sie diese aus em mit Knoten? – RobH

+0

Ich benutze, um als eine Aufgabe mit Rake auszuführen. Eigentlich verwende ich die jshint_on_rails –

+0

Das erklärt die 'config/jshint.yml' Datei, die ich noch nicht gehört hatte. – RobH

Antwort

72

Für JSHint Sie .jshintrc in Ihr Projektverzeichnis mit

{ 
    "globals": { "MyProject": true } 
} 
+1

Danke. Aber da ich jshint_on_rails verwende, kann ich einfach diese Option einstellen: predef: 'MyProject' auf config/jshint.yml –

+0

Das hättest du in deiner Frage erwähnen sollen :) – Epeli

+0

Du hast recht, ich habe diesen Teil verpasst. Ich werde für das nächste Mal daran denken. Thanks –

4

JSLint hat eine Textfläche unterhalb der Optionen, die predefine global variables here darin heißt. Fügen Sie einfach die Variablennamen hinzu, bevor Sie den Check ausführen.

In JSHint können Sie keine globalen Variablen hinzufügen, Sie können jedoch die Option When variable is undefined deaktivieren, um diese Warnung zu unterdrücken.

Die JSHint-Bibliothek enthält auch Parameter für Globals, wenn Sie sie als Bibliothek ausführen. . . hier Details: http://jshint.com/docs/

+0

Es klingt nicht so, als würden sie das Webinterface benutzen - 'Aber ich suche nach einer Möglichkeit, diesen Kommentar in irgendeiner Art von Konfigurationsdatei zu definieren, damit ich nicht Datei für Datei diesen Kommentar hinzufügen muss.' und 'Irgendeine Art von Option in der config/jshint.yml wäre nett' – Ian

+1

Ich habe es gerade gefunden, das 'predef' Attribut unter config/jshint.yml. Es ist ein Komma-getrenntes Attribut. Danke! –

+1

Zwei downvotes? "Ja wirklich?" – talemyn

25

Dies ist nur für Globals

/* global MyProject */ 

In Ihrem Fall erstellen Sie benötigen

/* exported MyProject */ 
Verwandte Themen