2016-08-04 14 views
2

Ich habe ein neues Angular + Node-Projekt von meinem Client, die ich auf meinem lokalen eingerichtet. Die Anwendung läuft gut. Aber das einzige Problem ist die CPU nimmt 100%, wenn ich den grunt Befehl ausführen und mein System hängt. Aber auf meinem Client-Rechner mit der gleichen Konfiguration scheint alles gut zu laufen.Dateien zählen von Grunt beobachtet

Nach dem Blick in viele Threads fand ich, dass diese Art von Problem auftritt, wenn Grunt zu viele Dateien beobachtet. Ich habe auch die grunt watch --verbose verwendet, um die Dateien zu sehen, die ich gerade sehe. Tatsächlich fiel ich, als ob wir eine Menge unnötiger Dateien wie Angluar und Jquery-Bibliotheksdateien sehen würden.

Gibt es einen Weg/Plugin, um die genaue Anzahl zu erhalten, wie viele Dateien ich über den Befehl grunt sehe?

Antwort

2

Wenn es auf einer Maschine funktioniert, die die gleiche Konfiguration/Umgebung ist, aber mehr PS hat, dann denke ich, dass Sie richtigerweise davon ausgehen, dass Sie zu viele Dateien ansehen.

Wenn Sie dies noch nicht getan haben, sollten Sie grunt watch auf einer Konfiguration ausführen, die nur einige Dateien überwacht, um den Pfad zu unterstützen, in dem Sie einfach zu viele Dateien sehen.

Schließlich sollten Sie immer nur Dateien beobachten, die überwacht werden müssen, oder mit anderen Worten, die sich während der Entwicklung ändern. Third Party Libraries und ähnliches sollten absolut nicht in diesem Set enthalten sein!

Meine Empfehlung an Sie ist, nur die Dateien zu beobachten, die Sie sehen müssen, und Sie können genau die Dateien angeben, die Sie beobachten oder Glob-Patterns mit einem gewissen Grad an Spezifität verwenden müssen. Ich werde auch darauf hinweisen, dass Sie den Negationsoperator ! mit glob verwenden können.

Wenn nach meiner Empfehlung folgen, werden Sie immer noch die gleichen Probleme haben, Sie haben drei Möglichkeiten, wie ich es sehe:

  1. erstellen spezifischere Uhr Aufgaben und nur ein oder zwei von ihnen zu einem Zeitpunkt ausgeführt .
  2. Aktualisieren Sie Ihre Hardware
  3. Verwenden Sie keine Uhr, und nur eine Aufgabe manuell über die Befehlszeile auslösen.

EDIT: in Antwort Hinzufügen von Kommentaren unten, da sie direkt die Frage anspricht.

Um die von grunt überwachten Dateien zu zählen, verwenden Sie den Befehl linux find und leiten Sie ihn an wc -l. Wenn Sie also in Ihrem Projektstamm arbeiten und die Anzahl der Dateien mit der Erweiterung .js zählen möchten, die im Verzeichnis src und seinen Unterverzeichnissen enthalten sind, würde dies etwa wie find . -name "src/*.js" | wc -l aussehen. Was wir hier tun, ist, alle Dateien zu finden, die Ihren Kriterien entsprechen, und dann die Anzahl der Dateien zu zählen, indem Sie den Befehl wc verwenden, wobei die Zeilen in der Standardausgabe mit -l gezählt werden.

+0

Ich lief 'grunt watch --verbose' und kopiere alle überwachten Dateinamen von meinem Terminal und in einer Notepad ++ Datei eingefügt, kann ich sehen, wie rund 1152 Dateien zu sehen. Reicht es aus, die CPU-Auslastung zu 100% zu erhöhen? –

+0

Es gibt Variablen, wie die Leistung Ihrer CPU, die mich davon abhalten, das mit Sicherheit zu beantworten. Kurz gesagt, ja, es ist möglich. Das sind viele Dateien. Ich würde genauer mit den Dateien sein, die Sie sehen. Außerdem sollten Sie sicherstellen, dass Sie die neuesten Versionen von grunt und grunt-contrib-watch ausführen, da es in der Geschichte von grunt-contrib-watch zahlreiche Leistungsverbesserungen gegeben hat. – rdgd

+0

Auch wenn es scheint, dass Sie eine grobe Zählung der Dateien haben, um die Frage zu beantworten, wie man die von grunt beobachteten Dateien zählt, benutzen Sie den linux find Befehl und leiten Sie ihn nach 'wc -l'. Wenn Sie also in Ihrem Projektstamm arbeiten und die Anzahl der Dateien mit der Erweiterung .js zählen möchten, die im Verzeichnis src und seinen Unterverzeichnissen enthalten sind, würde dies etwa wie folgt aussehen: Suchen. -name "src/*. js" | wc -l'. Was wir hier tun, ist, alle Dateien zu finden, die Ihren Kriterien entsprechen, und dann die Anzahl der Dateien zu zählen, indem Sie den Befehl 'wc' mit dem' -l' verwenden, um neue Zeilen zu zählen. – rdgd