2014-05-17 7 views
5

Ich sehe, dass die Möglichkeit, JSHint Optionen pro Verzeichnis Basis anzugeben war added here.Wie setze ich JSHint-Optionen pro Verzeichnisbasis

Allerdings ist mir nicht klar, wie Sie das tatsächlich ausnutzen. Was kann ich tun, um JSH-Optionen in einem einzigen Verzeichnis festzulegen, sodass sich die Optionen von anderen Verzeichnissen unterscheiden?

Antwort

5

Es scheint, dass die Änderung in Frage tatsächlich ermöglicht, überschreibende Optionen pro Datei anzugeben. Sie können Ihrer Konfiguration eine overrides Eigenschaft hinzufügen, deren Wert ein Objekt sein sollte. Die Schlüssel dieses Objekts werden als reguläre Ausdrücke behandelt, anhand derer Dateinamen getestet werden. Wenn der Name der Datei, die analysiert werden entspricht einen overrides regex dann die für diese Überschreibung angegebenen Optionen in dieser Datei anwenden:

Es ist ein Beispiel dafür in der cli.js Testdatei diff in die Sie im Zusammenhang mit commit:

{ 
    "asi": true, 
    "overrides": { 
     "bar.js$": { 
      "asi": false 
     } 
    } 
} 

In diesem Beispiel gibt es eine einzige Überschreibung, die auf Dateien anwenden wird, die die bar.js$ regulären Ausdruck (was ein bisschen wie ein Versehen sieht übereinstimmen, da die . wird jedes Zeichen und vermutlich nur beabsichtigt war eine wörtliche übereinstimmen . Zeichen).


alles, was gesagt haben, es sieht nicht aus wie die overrides Eigenschaft wird Ihnen nicht helfen. Ich denke, was Sie eigentlich wollen, ist eine neue .jshintrc Datei in dem betreffenden Verzeichnis. JSHint sucht nach der Datei, die im Verzeichnis der zu analysierenden Datei beginnt, und verschiebt den Verzeichnisbaum nach oben, bis dieser gefunden wird. Was immer es zuerst findet, ist derjenige, der benutzt wird. From the docs:

Bei .jshintrc wird JSHint für diese Datei im selben Verzeichnis wie die Datei suchen beginnen, die linted Wesen. Wenn es nicht gefunden wird, wird es eine Ebene nach oben in den Verzeichnisbaum bis zum Dateisystemstamm verschoben.

Ein häufiger Anwendungsfall hierfür sind separate JSHint-Konfigurationen für Ihren Anwendungscode und Ihren Testcode. Auf diese Weise können Sie die verschiedenen Umgebungen und Globalen getrennt definieren.

+1

"SHint sucht nach dieser Datei im Verzeichnis der zu analysierenden Datei und verschiebt den Verzeichnisbaum nach oben, bis er gefunden wird." Bist du sicher? Ich habe das zuerst versucht und es hat nicht funktioniert. – Icarus

+2

Ja, ich verwende diese Einstellung die ganze Zeit. Ich habe meine Antwort so bearbeitet, dass sie auch den relevanten Teil der Dokumentation enthält. Eine Sache zu beachten ist, dass JSHint, weil er nach der Datei '.jshintrc' im Verzeichnis der gelöschten Dateien sucht und sich hocharbeitet, keine Möglichkeit hat, Optionen aus den Configs in höheren Verzeichnissen zusammenzuführen. –