You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I spotted the recursive watch support for OS X in the io.js changelog.
There's a pull request for libuv at joyent/libuv#1473 to add recursive watch support for Windows but it has been sitting for a few months.
Is there anyone here who could help to get that through?
If we had recursive watch support for OS X and Windows, then Linux could be handled using a series of inotify watchers (we can't do this on Windows because it would lock every watch directory or parent thereof), and we could get a decent cross-platform watch implementation working on top of io.js.
If we had recursive watch support for OS X and Windows, then Linux could be handled using a series of inotify watchers
That won't really work - or at least, work well - due to the relatively low per-user inotify limit. It's something you can tweak through a sysctl but most people leave it at the default (for good reasons, having too many watchers seriously impacts performance.)
It would help to have the recursive support for Windows at least. For Linux there is no choice but to make the most of inotify as far as possible (only watching directories, not files) and then fall back to polling when inotify limits are reached. That's better than just polling to begin with. But for Windows, there's no way to use fs.watch at all at present (unless it has recursive support) because of how it locks every watched directory.
+1 to expose the recursive option on windows. I really want to benefit from the native support of recursing and not rely on some custom solution that has to a) lock every child folder and b) consume lots of CPU/Memory while doing so.
@saghul already called it out, it breaks the ABI. It's also possibly stale by now. Someone needs to pick it up and do the work of getting the necessary changes landed in libuv and io.js.
My careful use of the word 'someone' is a hint that it won't be me. :-)
I'm also interested in this for https://github.com/qard/onchange. I don't really do Windows dev though, so I'm not sure I'd be able to put together a decent PR for this. I'm hoping someone better at Windows figures this out before I can take the time to look into it.
Activity
KyleAMathews commentedon Jan 14, 2015
Most people writing cross-os tools don't rely on core fs.watch but various fs.watch replacements/supplements such as https://github.com/paulmillr/chokidar
bnoordhuis commentedon Jan 14, 2015
That won't really work - or at least, work well - due to the relatively low per-user inotify limit. It's something you can tweak through a sysctl but most people leave it at the default (for good reasons, having too many watchers seriously impacts performance.)
jorangreef commentedon Jan 15, 2015
It would help to have the recursive support for Windows at least. For Linux there is no choice but to make the most of inotify as far as possible (only watching directories, not files) and then fall back to polling when inotify limits are reached. That's better than just polling to begin with. But for Windows, there's no way to use fs.watch at all at present (unless it has recursive support) because of how it locks every watched directory.
bpasero commentedon Feb 6, 2015
+1 to expose the recursive option on windows. I really want to benefit from the native support of recursing and not rely on some custom solution that has to a) lock every child folder and b) consume lots of CPU/Memory while doing so.
Please please please add this flag for windows.
bnoordhuis commentedon Feb 6, 2015
@bpasero io.js accepts pull requests, you know. :-)
Jest aside, I personally don't object to a recursive flag. The pitfalls need to be called out in the documentation, though.
bpasero commentedon Feb 6, 2015
@bnoordhuis whats wrong with joyent/libuv#1473 ?
bnoordhuis commentedon Feb 6, 2015
@saghul already called it out, it breaks the ABI. It's also possibly stale by now. Someone needs to pick it up and do the work of getting the necessary changes landed in libuv and io.js.
My careful use of the word 'someone' is a hint that it won't be me. :-)
Qard commentedon Feb 6, 2015
I'm also interested in this for https://github.com/qard/onchange. I don't really do Windows dev though, so I'm not sure I'd be able to put together a decent PR for this. I'm hoping someone better at Windows figures this out before I can take the time to look into it.
bpasero commentedon Feb 11, 2015
@bnoordhuis I created libuv/libuv#198. I think this report can be closed as it seems to be a libuv only thing?
Qard commentedon Aug 14, 2015
This is in libuv as of 1.7.0, so it should get in when #2310 is merged.
doc,test: enable recursive file watching in Windows
silverwind commentedon Sep 4, 2015
Fixed by a338eb3
doc,test: enable recursive file watching in Windows
doc,test: enable recursive file watching in Windows
doc,test: enable recursive file watching in Windows
doc,test: enable recursive file watching in Windows
doc,test: enable recursive file watching in Windows
doc,test: enable recursive file watching in Windows