node.js中本地安装的模块

时间:2013-04-04 07:09:40

标签: git node.js express

我是node.js和express的初学者。我发现我可以使用“package.json”和npm install来解决node.js模块的依赖关系。该命令将在本地安装 必需的模块,对我来说似乎是C ++中的静态库。

我有两个问题:

  1. 我应该何时使用npm install -g模块的全局安装以及何时使用本地安装(特别是快速应用程序)?

  2. 我使用git进行版本控制。我应该将本地安装的第三方node.js模块添加到存储库吗?模块看起来很大,当然不是我的代码。我对这些模块的版本控制感到困惑。

  3. 欢迎任何帮助或提示,并提前致谢!

3 个答案:

答案 0 :(得分:2)

1:在全局命令行中安装使用的模块,如expresss,其他模块在本地安装。如果你不知道在两个地方安装它们

更多信息:http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/

2:不要将依赖项上传到git,你可以在package.json文件中指定具体的版本号,这样你就不需要它们了。将node-modules添加到.gitignore

答案 1 :(得分:2)

1

通常,始终在package.json中指定依赖项,然后运行npm install。这样做的好处是你有一个明确的项目依赖列表,你不必在git中检查模块。

有些模块需要全局安装,但如果在这些情况下应该在文档中指定,您通常可以将这些模块视为不属于项目的一部分。例如,如果您正在使用Grunt,则必须全局安装grunt-cli,因为它添加了命令行命令,但您的代码实际上并未使用它。

2

正如@pfried所说,如果你正在研究一个模块,那么最好不要检查依赖关系。但是,如果您正在处理一个不应该分发给其他人的完整网站/应用程序,那么检查甚至依赖关系可能是有利的。

这样做的原因是,即使您指定了"express": "3.0.1",也可以将其中一个明确的“依赖关系”指定为“0.x.x”。因此,当您稍后在生产服务器上安装该应用程序时,您可能会获得另一个版本并且难以检测到错误。通过检入依赖关系,您完全可以确定在本地,阶段和生产服务器之间的任何代码中都不会遇到任何差异。

答案 2 :(得分:0)

  1. Never(正确设置你的PATH)
  2. No(git是源代码)。另请参阅12factor.net