Verwendung von JSLint / Hint mit requirejs

9

Ich richte derzeit ein automatisiertes Build-Skript ein (mit gekennzeichnet sind ) für ein getriebenes Projekt. Daher möchte ich / mit allen erforderlichen Dateien versehen haben, bevor sie verkettet und mit r.js verkleinert werden. Da der Ordner js viele Entwicklungsdateien enthält, die ich nicht fusseln möchte, kann ich js/**/*.js nicht einfach an JSLint übergeben. Mein erster Gedanke war, r.js mit optimizer: 'none' auszuführen, die verkettete Datei zu schließen und dann zu verkleinern, aber dies ist aus zwei Gründen keine Option. Zuerst wird es Vendor-Bibliotheken enthalten, die ich nicht lint und zweitens die Zeile mit dem Fehler finden, seine Klasse finden, die entsprechende js-Datei im dev-Ordner finden, sie dort reparieren, r.js erneut ausführen und schließlich flinten Auch das ist viel zu mühselig für unseren Workflow. Also suche ich nach einer Möglichkeit, den linting in den r.js optimizer-Prozess einzubinden oder zumindest eine Liste der requires dependency tree in irgendeiner Weise zu bekommen, die ich parsen und an lint übergeben kann. Oder irgendeine Lösung, die für einen automatisierten Prozess praktikabel ist, werden Sie finden.

    
Marcello di Simone 17.10.2012, 14:50
quelle

4 Antworten

1

Diese Antwort umgeht Grunt, aber es sollte für das funktionieren, was Sie tun möchten. Die Art, wie ich es tun würde, ist r.js zu betrachten und zu versuchen, eine Funktion zu überschreiben, die den Pfad zu den verschiedenen geladenen Modulen erhält, den Modulnamen abfängt und die Dateien lint, während r.js die Module lädt und kompiliert. Ich habe es so gemacht:

%Vor%

Wenn Sie requirejs.optimize für Ihre Module ausführen, sollten Sie alle nicht leeren JavaScript-URLs abrufen, die in der Konsole protokolliert wurden. Anstatt sie auf der Konsole zu protokollieren, könnten Sie die URLs verwenden, um die Dateien zu filtern.

    
Ryan Lynch 17.10.2012, 17:20
quelle
2

Flicken Sie zuerst, kompilieren Sie später. Seien Sie genau über die Dateien, die Sie flinken möchten und verwenden Sie die! Präfix, um bestimmte Dateien zu ignorieren:

%Vor%     
Kyle Robinson Young 17.10.2012 17:16
quelle
2

Ich bevorzuge es, die Methoden von r.js nicht zu überschreiben, oder Sie könnten eine unerwünschte Abhängigkeit von einer bestimmten Version erzeugen (Sie müssen Ihren Code aktualisieren, falls sich r.js ändern sollte)

Dies ist der Code, den ich für den gleichen Zweck benutze, indem ich die onBuildRead-Funktion von require benutze und die Tatsache, dass Objekte in Javascript als Referenz übergeben werden. Ich stelle sicher, dass ich zuerst das require-Build und dann die js-Dateiquellen lint.

Der Nachteil ist, dass Sie nach Abschluss der Erstellung flinken. Für mein Setup ist das kein Problem.

%Vor%     
malukisses 08.03.2013 20:54
quelle
0

Anstatt den lint -Task zu verwenden, installieren, laden und richten Sie grunt-contrib-jshint ein . Es verfügt über die Option ignores , um bestimmte Dateien oder Dateipfadmuster zu ignorieren.

Hier ist meine Aufgabe:

%Vor%     
jeffbyrnes 19.06.2013 18:46
quelle