Yes the way you should do it is with shrinwrap to ensure the consistency of your dependencies. As for the actual files if you depend on it you should have your own npm repo caching them that you deploy from and have that mirror the public one.
but for small projects or quick deploys absolutely just go ahead and commit the modules.
but for small projects or quick deploys absolutely just go ahead and commit the modules.