For those use-cases I use entr (https://github.com/clibs/entr). In what sense does watchman differ to it? Didn't see anything related to this at first glance :-)
> WARNING: This is a (possibly outdated and/or unmaintained) fork of https://github.com/eradman/entr .