2014-11-20 4 views
11

Grunt watch (grunt-contrib-watch) wird verwendet, um das erneute Laden der Web-App im Browser auszulösen. Es ist jedoch langsam, Änderungen an der Datei zu bemerken, wenn sie in einer virtuellen Vagrant-Maschine mit NFS für synchronisierte Ordner ausgeführt werden. Das Ändern einer Datei löst einen Neuladevorgang erst nach ca. 5 Sekunden aus, obwohl dies fast sofort erwartet wird. Warum ist grunt watch so langsam, um Änderungen zu erkennen? Gibt es eine Möglichkeit, es schneller zu machen?Grunt Watch erkennt Dateiänderungen erst nach 5 Sekunden mit Vagrant und NFS

Mit den synchronisierten Ordnern von VirtualBox erkennt grunt watch Dateiänderungen fast sofort. Da synchronisierte Ordner von VirtualBox für bestimmte andere Vorgänge bei großen Dateimengen inakzeptabel langsam sind, ist es in diesem Fall leider nicht möglich, auf sie zurückzugelangen.

+0

Ich hatte das gleiche Problem bei der Verwendung von NFS w/Vagrant. Ich entschied mich schließlich, Samba zu verwenden, und jetzt erkennt Grunt Dateiänderungen fast sofort. Hier ist ein praktischer Leitfaden für die Einrichtung von Samba auf der Vagrant-Box: http://www.kieronhoward.co.uk/vagrant-windows-improve-slow-performance-using-smb-instead-nfs/ – nanook

+0

Wenn ich dieses Problem habe ich finde 'ctrl + c' und laufe grunt wieder schneller - aber für die meisten Änderungen ist das Warten in Ordnung. – ArleyM

Antwort

22

versuchen, diese Mount-Optionen in Ihrem Vagrantfile:

type: "nfs", mount_options: ['actimeo=1']

Dies wird das NFS-Dateiattribut Caching Timeout erheblich reduzieren. Ich hatte ähnliche Probleme, große Verzögerungen mit Vagrant/NFS beim Warten auf Schluck- und Django-Server-Reloads. Das hat es behoben; Dateiänderungen werden jetzt sofort erkannt.

+3

Danke, das ist die selbe Lösung, die ich nach dem Schreiben dieser Frage selbständig gefunden habe. Hoffe, dass andere nicht so viel Zeit damit verbringen müssen, das zu debuggen. –

+0

In welcher Zeile/Punkt der Vagrant-Datei muss ich das hinzufügen? – realtebo

+1

@realtebo config.vm.synced_folder "./", "/ vagrant", geben Sie ein: "nfs", mount_options: ['actimeo = 1'] – Strake