Your setup is correct. I suspect what's happening here is npm run roll :
starts -> spawns child process that does the watching behavior -> exits main process -> cmd.Wait()
Just as Bradley suggested above. In that case the semantics of what you're trying to achieve changes.