grunt-simple-watchgrunt task to watch files without using fs.watch or fs.watchFile
Getting StartedIf you haven't used grunt before, be sure to check out the Getting Started guide.
From the same directory as your project's GruntfileGetting Started and package.json, install this plugin with the following command:
npm install grunt-simple-watch --save-dev
Once that's done, add this line to your project's Gruntfile:
If the plugin has been installed correctly, running
grunt --helpat the command line should list the newly-installed plugin's task or tasks. In addition, the plugin should be listed in package.json as a
devDependency, which ensures that it will be installed whenever the
npm installcommand is run.
WHY?Having all sort of weird issues with grunt watch?
This is because it currently uses an unstable node.js functionality - fs.watch()
What happend on my caseIm using grunt on a virtualbox dev server with Ubuntu 11.10 and Node 0.6.19. My host system is Windows 7.
My project files are on a shared folder between the host and server When i update files on the shared folder it does not trigger the fs.watch
The solutionDO NOT USE fs.watch
but solve it simply by polling for changes in the most basic/simple way.
This might be more CPU intensive, and might not work in high loads with many watched files. But im not sure if the original watch task would do the job as well on this case. i just did not check.
Getting StartedInstall this grunt plugin next to your project's grunt.js gruntfilegettingstarted with:
npm install grunt-
Then add this line to your project's
(or simple place the task file simplewatch.js in your grunt/tasks directory..)
use the command: grunt simple-watch (instead of: grunt watch)
NO NEED TO CHANGE grunt.js configurations (your gruntfile)!
as it keeps on using the "watch" config.
Developed at SupersonicAds R&D labs.
LicenseCopyright (c) 2012 Amir Souchami Licensed under the MIT license.