2017-11-30 1 views
0

Ich arbeite durch ein React-Tutorial, das eslint verwendet. Wenn ich tippe:Wie kann ich meine Umgebung so bearbeiten, dass 'ls **/*. Js' nicht zu einem 'Argumentliste zu lang' Fehler führt?

eslint **/*.js 

es gibt 'argument list zu lang' zurück, wenn ich aus dem Projektstamm ausführen. Folgendes funktioniert, enthält jedoch nicht alle Dateien.

eslint **/*.js 

Das Problem ist jedoch nicht eslint, wie folgt der gleiche Fehler.

ls **/*.js 

und

ls */*.js 

Dies ist kein großes Projekt und der einzige Ordner mit einer Anzahl von Ordnern in es ist der node_modules Ordner.

Warum gibt es diesen Fehler für einen relativ kleinen Bereich und gibt es eine Möglichkeit, alle js-Dateien in den Ordner und Unterordner zu erfassen?

+0

Wenn Sie dies mit einer kleinen Anzahl von Dateien (und nicht-außergewöhnlich langen Datei/Verzeichnisnamen) bekommen, haben Sie wahrscheinlich eine Menge Grusel in Ihre Umgebung exportiert. Umgebungsvariablen und Befehlszeilenargumente befinden sich im selben Bereich. –

+0

... schau durch die Ausgabe von 'env' und finde heraus, was nicht da sein muss. (Wenn eine Variable für Unterprozesse nicht zugänglich sein muss, können Sie sie als normale Shell-Variable einstellen, ohne sie zu exportieren!) –

Antwort

0

Entweder:

printf '%s\0' **/*.js | xargs -0 eslint 

... oder ...

find . -name '*.js' -exec eslist {} + 

... wird eine größere Anzahl von eslint Anrufungen laufen, die jeweils nur so viele Argumente, wie sie auf einem passen Befehlszeile des einzelnen Aufrufs.

+0

Gekennzeichnetes Community-Wiki, um zu vermeiden, dass rep von der Beantwortung eines bekannten Betrogenen ausgeht. –

Verwandte Themen