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.


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 }
}

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 */

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/


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
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.