Watchman
A file watching service that records when files change
Watchman purpose is to watch files and record when there are changes. It can trigger actions (rebuilding assets, for example) when there is a change in matching files. The watchman executable has both the client and the server components of the watchman service. When running watchman, it will attempt to communicate with your existing server instance (each user has their own persistent process), and will attempt to start it if it doesn’t exist. There are some options that affect how watchman will locate the server, some options that affect only the client and some others that affect only the server. Since all of the options are understood by the same executable we’ve broken those out into sections of their own to make it clearer when they apply. Watchman is conservative, preferring to err on the side of caution; it considers files to be freshly changed when you start to watch them or when it is unsure.