Awesome
chokidar-socket-emitter
a simple chokidar watcher and socket.io server which emits file system events to all connected socket.io clients. Primarily it should serve as an event source for systemjs-hot-reloader but you can use it any other way.
Install
npm i -D chokidar-socket-emitter
CLI usage
npm i -g chokidar-socket-emitter
chokidar-socket-emitter -l 1234
available CLI options:
-l, --port <n>
-p, --path <path>
-d, --dir <n>
-P, --poll # use when you have a disk mounted over network for example
-q, --quiet # don't print out any logs
By default listens on port 5776.
NPM script usage
Combined with browser-sync:
"scripts": {
"start": "npm run serve & npm run watch",
"serve": "browser-sync start --server",
"watch": "chokidar-socket-emitter"
},
Start by running:
npm start
Programatic usage
var chokidarEvEmitter = require('chokidar-socket-emitter')
chokidarEvEmitter({port: 8090}) //path is taken from jspm/directories/baseURL or if that is not set up, '.' is used
//or specify the path
chokidarEvEmitter({port: 8090, path: '.'})
//you can also supply an http server instance, that way it will run within your server, no need for extra port
require('chokidar-socket-emitter')({app: server})
FAQ
Does chokidar have problems with watching drives mounted from VMs hosts/network?
Yes and if you want it to work, use additional opts property to switch to polling mode
chokidarEvEmitter({port: 8090, path: '.', chokidar: {usePolling: true}})