2013-10-24 55 views

回答

3

,而不是只为我当前的* nix用户

在这种情况下本地的意思是“只有一个节点应用”,而不是“只为我的用户”。分别地,全局意味着“针对所有节点应用”,而不是“针对该计算机上的所有用户”。

全局安装的NPM模块通常会实现跨应用程序使用的功能,而不只是在一个项目中使用。一个例子是一个命令行工具。您可以在全局安装npm软件包,并为您提供一种从操作系统终端调用命令的方法。由于这在一个应用程序中没有任何意义,因此您必须将其安装在全球NPM位置。当然,在安装之前,您需要确保模块真的需要跨应用程序工作。

您已链接的生成器由Yeoman使用,它是脚手架应用程序的命令行工具。因此全球需求。

+0

但'npm install -g'需要超级用户权限。为什么它只需要为当前用户安装就需要超级用户权限? – themirror

0

当您在package.json所在的目录中执行npm install时,npm会创建一个node_modules文件夹并将其放入所有项目包需求。

当你做npm install -g安装的软件包到/usr/lib/node_modules/使它们全球可用。 (-g代表'global')并允许CLI实现。像快递(如express --sessions project,至极无法使用,无需安装快递全球)

几乎所有的教程需要全球的安装,因为他们使用CLI东西,以后你就能使用它们,因此是更好地为您安装它们。