One more thing to consider: checking in node_modules makes it harder / impossible to use the difference between dependencies and devDependencies.
On the other hand though, one could say it's reassuring to push to production the exact same code that went through tests - so including devDependencies.