grunt task to watch files without using fs.watch or fs.watchFile
If you haven't used grunt before, be sure to check out the Getting Started guide.
From the same directory as your project's Gruntfile 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:
grunt.loadNpmTasks('grunt-simple-watch');
If the plugin has been installed correctly, running grunt --help
at 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 install
command is run.
This is because it currently uses an unstable node.js functionality - fs.watch()
Im 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
DO NOT USE fs.watchbut 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.
Install this grunt plugin next to your project's [grunt.js gruntfile][getting_started] with: `npm install grunt-`Then add this line to your project's grunt.js
gruntfile:
grunt.loadNpmTasks('grunt-simple-watch');
(or simple place the task file simple_watch.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.
Copyright (c) 2012 Amir Souchami Licensed under the MIT license.