2

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

我有两个问题:

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

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

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

4

3 回答 3

2

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

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

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

于 2013-04-04T07:13:06.577 回答
2

1

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

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

2

正如@pfried 上面所说,如果您正在开发一个模块,最好不要签入依赖项。但是,如果您正在处理一个不应该分发给其他人的完整网站/应用程序,那么检查依赖项可能是有利的。

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

于 2013-04-04T07:41:48.700 回答
0
  1. 从不(改为正确设置 PATH)
  2. (git 用于源代码)。另见12factor.net
于 2013-04-04T07:44:34.730 回答