了解npm和Node.js安装模块的位置

我一直在使用Node.js和npm几个星期,并已经开始质疑安装本地模块的最佳实践。 我了解全球与本地的争论 ,但是,我的问题更多的是在哪里进行本地安装。 假设我有一个位于~/ProjectA/的项目,该项目由多个开发人员进行版本控制和处理。 当最初使用Node.js和npm进行播放时,我并不知道默认的本地安装path,只是简单地将必要的模块安装在默认terminal中,导致~/node_modules的安装path。 这最终要做的是要求在项目上工作的所有其他开发人员将模块安装到自己的机器上,以便运行该应用程序。 看到有些开发者运行npm install我仍然感到非常惊讶,他们的机器一直在运行(我想这与Node.js和require()是如何查找模块有关 ),但不用说,它工作。

现在这个项目已经越过了“围观”阶段,我想正确设置项目文件夹。 所以,我的问题是,如果这些模块安装在~/ProjectA/node_modules ,因此是版本控制的项目文件的一部分,还是应该继续位于开发者机器特定的位置…或者不是真的问题在所有?

我只是在寻找一些关于这个项目的“最佳实践”指导,以及其他项目在build立项目时所做的工作。

我认为这里的“最佳实践”是保持项目文件夹内的依赖关系。
目前为止,我所见过的几乎所有的Node项目(我是一个Node开发人员,现在已经有8个月了)。

您不需要版本控制依赖关系。 这就是我pipe理我的Node项目的方式:

  1. 请将版本locking在package.json文件中,这样每个人都可以获得相同的工作版本, 或者在项目根目录中使用npm shrinkwrap命令。
  2. 添加node_modules文件夹到你的VCS忽略文件(我使用git,所以我的.gitignore
  3. 快乐,你完成了!