I would love to see the bad side of adding them to your repository, for example, working with Linux and OSX developers at the same time.
But anyway, adding them to your repository, is development domain, right?
How do you handle adding modules with binary to your repository? If you're using Windows to develop, and Debian to production, what is exactly you pre-deploy preparation to fix this?
If you are concerned about mixing you binary with source in a repo you can always use `npm install --ignore-scripts` this should download modules without building them and add them to your repo afterwards, followed by a `npm rebuild` and adding created files to `.gitignore`
For the pre-deploy preparation what I'm doing now is preparing everything in a separate location (pre-deploy path), pulling new code rebuilding it if necessary, running tests if all went ok the code is moved to the final deploy path.