So teilen Sie JSLint / JSHint mit, welche globalen Variablen bereits definiert sind

79

In meinem Projekt haben wir einige globale Variablen, die als Container funktionieren:

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

Dann verwende ich dieses Skript auf der gesamten Website und JSLint / JSHint beschwert sich darüber:

'MyProject' ist nicht definiert

Ich weiß, dass ich zu jeder JavaScript-Datei gehen und den Kommentar /*global MyProject*/darüber hinzufügen kann. 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.

Eine Art Option in der config/jshint.ymlwäre schön.

Emiliano Zilocchi
quelle
Verwenden Sie die Webanwendungen (z. B. jshint.com ) oder führen Sie sie mit Node aus?
RobH
Ich verwende, um als Aufgabe mit Rechen zu laufen. Eigentlich benutze ich die jshint_on_rails
Emiliano Zilocchi
Das erklärt die Datei 'config / jshint.yml', von der ich noch nichts gehört hatte.
RobH

Antworten:

81

Für JSHint können Sie mit .jshintrcin Ihr Projektverzeichnis erstellen

{
  "globals": { "MyProject": true }
}
Epeli
quelle
2
Vielen Dank. Da ich jedoch jshint_on_rails verwende, kann ich einfach diese Option festlegen: predef: 'MyProject' in config / jshint.yml
Emiliano Zilocchi
Sie sollten das in Ihrer Frage erwähnt haben :)
Epeli
Sie haben Recht, ich habe diesen Teil verpasst. Ich werde das nächste Mal daran denken. Vielen Dank
Emiliano Zilocchi
11
Nur ein kleiner Hinweis zur Verwendung: Setzen Sie falsefür Bibliotheken wie angularund $. Aber trueziehen Sie dies für Globale an, die Sie selbst neu definieren möchten, wie z myApp.
Polyklick
57

Dies ist nur für Globale

/* global MyProject */

In deinem Fall brauchst du

/* exported MyProject */
Zevero
quelle
1
Dies ist eine gute Antwort, wenn Sie mit einer JavaScript-Datei arbeiten. Danke!
4

JSLint hat einen Textbereich unter den darin enthaltenen Optionen predefine global variables here. Fügen Sie einfach die Variablennamen hinzu, bevor Sie die Prüfung ausführen.

Mit JSHint können Sie keine globalen Variablen hinzufügen, aber Sie können die When variable is undefinedOption zum Unterdrücken dieser Warnung deaktivieren .

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

Talemyn
quelle
Es hört sich nicht so an, als würden sie das Webinterface verwenden - But I'm looking a way to define that comment in some sort of config file so I don't have to go file by file adding this comment.undSome kind on option in the config/jshint.yml would be nice
Ian
1
Ich habe es gerade gefunden, das Attribut 'predef' unter config / jshint.yml. Es ist ein durch Kommas getrenntes Attribut. Vielen Dank!
Emiliano Zilocchi
1
Erwähnenswert predef ist auch JSLint .
Ruffin
In Visual Studio 2013 mit Web Essentials und einer herkömmlichen Hierarchie von Lösungsordnern und Projektunterordnern können Sie es im Lösungsstammordner ablegen.
George
Unverdiente Abstimmungen. Die Frage machte nicht klar, dass Rails verwendet wurde, bis diese Antwort hinterlassen wurde. +1
Superluminary