我想知道在检查代码时是否应该在回购中跟踪node_modules或进行npm安装?
答案并不像阿尔贝托·扎卡尼(Alberto Zaccagni)所建议的那样容易。如果您开发应用程序(尤其是企业应用程序),则在git repo中包含node_modules是一个可行的选择,您选择哪种选择取决于您的项目。
因为他非常反对node_modules,所以我将集中讨论它们的参数。
想象一下,您刚刚完成了企业应用程序,并且您将需要支持3-5年。您绝对不希望依赖某人的npm模块,该模块将来可能会消失并且无法再更新您的应用程序。
或者您拥有无法从Internet访问的私有模块,并且无法在Internet上构建应用程序。或者,由于某些原因,您可能不想依赖最终的npm服务构建。
您可以在Addy Osmani的这篇文章中找到优缺点(尽管它与Bower有关,但情况几乎相同)。最后,我引用Bower主页和Addy的文章的报价:
“如果您没有编写要供他人使用的软件包(例如,您正在构建Web应用程序),则应始终将已安装的软件包检入源代码管理中。”