2014-12-13 10 views
7

Ich versuche, alle meine Javascript-Dateien mit jshint mit einem Npm-Skript-Befehl zu fusseln.Verwenden von Platzhaltern in Npm-Skripten in Windows

Ich bin auf Windows und egal, welche Wildcard ich angeben, ich kann nicht scheinen mehr als eine Datei.

eine bestimmte Datei Referenzierung funktioniert:

"scripts": { 
    "lint": "jshint app/main.js" 
} 

Aber alle folgenden Ergebnisse in Fehler:

"scripts": { 
    // results in Can't open app/**/*.js' 
    "lint1": "jshint app/**/*.js", 

    // results in Can't open app/*.js' 
    "lint2": "jshint app/*.js", 

    // results in Can't open app/**.js' 
    "lint3": "jshint app/**.js", 
} 
+1

Ich weiß nicht, ob es immer noch wahr ist, wie die Frage von 2011 und für 'jslint' aber ist: [Superuser: Wildcard für alle Unterverzeichnisse oder alle untergeordneten Verzeichnisse in Windows-Befehlszeile] (http://superuser.com/ q/358863/204820) –

Antwort

18

Sie können zwar nicht die Platzhalter verwenden, wenn jshint als Skript Aufgabe in npm läuft Unter Windows können Sie umgehen. Wenn jshint ein Verzeichnis übergeben wird, durchsucht es standardmäßig dieses Verzeichnis rekursiv. Also in Ihrem Fall können Sie einfach tun:

"script": { 
    "lint": "jshint app" 
} 

oder sogar

"script": { 
    "lint": "jshint ." 
} 

Diese in allen Dateien führen - auch in node_modules linted werden - das ist wahrscheinlich nicht das, was Sie wollen. Der einfachste Weg, Runde, dass zu bekommen, ist eine Datei .jshintignore in der Wurzel Ihres Projekts enthält die Ordner und Skripte, die Sie wollen linted nicht genannt haben:

node_modules/ 
build/ 
dir/another_unlinted_script.js 

Dies ist dann eine plattformübergreifende Lösung für jshint als eine Skriptaufgabe in npm.

Verwandte Themen