Chokidar
Minimal and efficient cross-platform file watching library
...Node.js fs.watch often reports events twice, emits most changes as rename, and it does not provide an easy way to recursively watch file trees nor supports recursive watching on Linux. Same as with Node.js fs.watchFile. Therefore, Chokidar resolves these problems. Initially made for Brunch (an ultra-swift web app build tool), it is now used in Microsoft's Visual Studio Code, gulp, karma, PM2, browserify, webpack, BrowserSync, and many others. It has proven itself in production environments. Chokidar does still rely on the Node.js core fs module, but when using fs.watch and fs.watchFile for watching, it normalizes the events it receives, often checking for truth by getting file stats and/or dir contents.