2014-11-20 15 views
11

Grunt watch (grunt-contrib-watch) viene utilizzato per attivare il ricaricamento dell'app Web nel browser. Tuttavia, è lento notare le modifiche ai file durante l'esecuzione in una macchina virtuale di Vagrant che utilizza NFS per le cartelle sincronizzate. La modifica di un file attiva la ricarica solo dopo circa 5 secondi, anche se è previsto che si verifichi quasi istantaneamente. Perché il grunt watch è così lento da rilevare i cambiamenti? C'è un modo per renderlo più veloce?Grunt watch rileva i cambiamenti di file solo dopo 5 secondi con Vagrant e NFS

Con le cartelle sincronizzate di VirtualBox, il rilevamento grunt rileva le modifiche dei file quasi istantaneamente. Tuttavia, poiché le cartelle sincronizzate di VirtualBox sono inaccettabilmente lente per alcune altre operazioni su grandi quantità di file, sfortunatamente non è un'opzione per tornare in questo caso.

+0

Ho avuto lo stesso problema quando utilizzo NFS con Vagrant. Alla fine ho deciso di usare Samba e ora Grunt rileva le modifiche ai file quasi all'istante. Ecco una guida pratica per l'impostazione di Samba nella casella Vagrant: http://www.kieronhoward.co.uk/vagrant-windows-improve-slow-performance-using-smb-instead-nfs/ – nanook

+0

Quando ho questo problema I trovare 'ctrl + c' e correre grunt di nuovo è più veloce - ma per la maggior parte delle modifiche l'attesa va bene. – ArleyM

risposta

22

provare queste opzioni di montaggio nella vostra Vagrantfile:

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

Questo ridurrà di molto il file NFS attributo di cache di timeout. Stavo avendo problemi simili, vedendo grandi ritardi con Vagrant/NFS in attesa di gulp e il caricamento del server Django. Questo l'ha risolto; le modifiche ai file vengono ora rilevate immediatamente.

+3

Grazie, questa è la stessa soluzione a cui sono arrivato in modo indipendente dopo aver scritto questa domanda. Spero che gli altri non debbano spendere tanto tempo per eseguire il debug di questo. –

+0

In quale linea/punto del file Vagrant devo aggiungere questo? – realtebo

+1

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