Bulk-Fix fehlende Semikola, die JSHints im Projekt findet

7

Ich habe ein Projekt mit mehr als 100 Javascript-Dateien mit je 1-5 fehlenden Semikola nach JSHint (als Ergebnis mehrere Leute, die mit verschiedenen Konventionen am Projekt arbeiten).

Ich möchte alles in großen Mengen reparieren, da es nicht praktisch ist, jedes einzelne zu reparieren. Ich habe folgendes gefunden: Ссылка , aber ich sehe keine Möglichkeit, nur Semikola zu fixieren, ohne andere Dinge zu "reparieren" (Tabs - & gt zB Leerzeichen.

Weiß jemand, wie man das macht? Ich bin mit der Möglichkeit zufrieden, dass es zu Brüchen kommen kann / Bugs verursachen kann. Ich habe über die Fehler geschaut und sie sehen ziemlich Routine aus.

    
Evan Hobbs 30.12.2013, 22:24
quelle

3 Antworten

11

Ich hoffe wirklich, dass dir das als Lösung gefällt. Seien Sie vorsichtig, dass Sie mit jshint erneut überprüfen, nachdem Sie die Probleme behoben haben. Und wie haben Sie es aus Neugierde geschafft, so viele kaputte Javascript-Dateien zu bekommen?

%Vor%

Das obige Beispiel verwendet jshint, um einige Fehlerzeilen zu erzeugen, greps sie nur für die fehlenden Semikolonfehler, extrahiert die Zeilennummer jedes Fehlers und seddet dann die Datei in dieser Zeile, um alle nachfolgenden Leerzeichen zu entfernen und sie durch ein Semikolon zu ersetzen .

Die Datei ...

%Vor%

... wird ...

%Vor%

Wo kleine semantische Fehler ignoriert und nur Semikolons behandelt werden.

Ich würde das Bash-Skript als etwas wie fixFile.sh speichern und dann find . -name "*.js" -exec ./fixFile.sh {} \;

ausführen

Aber bitte im Voraus verpflichten. Alle Befehle laufen auf eigene Gefahr;)

    
Lawrence Jones 30.12.2013, 23:36
quelle
10

Es gibt eine sicherere Methode, fehlende Semikolons hinzuzufügen als mit regulären Ausdrücken. Verwenden Sie die folgenden Schritte, um fixmyjs so zu konfigurieren, dass es nur Semikolons korrigiert, wie ursprünglich von Evan gefordert:

  1. Installieren Sie fixmyjs

    npm install fixmyjs -g

  2. Erstellen Sie eine fixmyjs-Konfigurationsdatei fixmyjs-config mit dem folgenden Inhalt

    { "asi": false }

  3. Führen Sie fixmyjs

    aus

    fixmyjs --config [fixmyjs-config] --legacy yourfile.js

Referenz: Ссылка

    
Chris2M 13.04.2014 14:27
quelle
1

Google Closure JS Linter verfügt über ein Programm, das dazu in der Lage ist, einige der regelmäßigeren Verstöße wie diese zu korrigieren, wie ich glaube, es heißt fixjsstyle (python btw)

    
Rob Jens 01.02.2016 09:51
quelle