我是node.js和express的初学者。我发现我可以使用“package.json”和npm install
来解决node.js模块的依赖关系。该命令将在本地安装
必需的模块,对我来说似乎是C ++中的静态库。
我有两个问题:
我应该何时使用npm install -g
模块的全局安装以及何时使用本地安装(特别是快速应用程序)?
我使用git进行版本控制。我应该将本地安装的第三方node.js模块添加到存储库吗?模块看起来很大,当然不是我的代码。我对这些模块的版本控制感到困惑。
欢迎任何帮助或提示,并提前致谢!
答案 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)
通常,始终在package.json中指定依赖项,然后运行npm install
。这样做的好处是你有一个明确的项目依赖列表,你不必在git中检查模块。
有些模块需要全局安装,但如果在这些情况下应该在文档中指定,您通常可以将这些模块视为不属于项目的一部分。例如,如果您正在使用Grunt,则必须全局安装grunt-cli,因为它添加了命令行命令,但您的代码实际上并未使用它。
正如@pfried所说,如果你正在研究一个模块,那么最好不要检查依赖关系。但是,如果您正在处理一个不应该分发给其他人的完整网站/应用程序,那么检查甚至依赖关系可能是有利的。
这样做的原因是,即使您指定了"express": "3.0.1"
,也可以将其中一个明确的“依赖关系”指定为“0.x.x”。因此,当您稍后在生产服务器上安装该应用程序时,您可能会获得另一个版本并且难以检测到错误。通过检入依赖关系,您完全可以确定在本地,阶段和生产服务器之间的任何代码中都不会遇到任何差异。
答案 2 :(得分:0)