Node.js:npm bin -g命令

时间:2013-09-25 03:42:22

标签: node.js npm

有人可以向我解释一下npm bin -g命令和npm bin命令之间的区别吗?

实际上,当我输入npm bin时,我会c:\wamp\www\node\node_modules\.bin

当我输入npm bin -g(这应该是" global")时,我得到c:\users\shmuli\appdata\roaming\npm

我假设"全球"意味着我可以在cmd中启动我的程序,而不必在其安装的特定目录中...全局安装是否具有与典型安装不同的安装目录?

这就是这里发生的事情吗?

1 个答案:

答案 0 :(得分:1)

全局安装意味着将模块安装到全局文件夹中,该文件夹可以从任何目录运行的脚本访问。

除了拥有不同的目录外,全局安装还将为模块安装man个页面,并为模块添加PATH变量。这就是为什么当模块具有命令行界面时,通常会指示您在安装时使用-g

例如,如果您从/path运行脚本,并且在该文件夹中有一个名为foo的模块,则只能在require('foo')内使用/path 1}}。但是,如果您在全局安装foo,则可以在文件系统的任何位置使用节点脚本中的require('foo'),因为始终会检查全局模块文件夹。

请注意,如果您在本地和全局安装模块,并且它们是不同的模块,则模块系统将迭代文件树,直到它到达驱动器的根目录。这意味着将在全局安装的模块上使用本地安装的模块,因为本地安装的模块将首先解析为。


对于实际的npm bin命令本身,它会打印包管理器将安装模块的路径。如果传递-g标志,则会打印安装全局模块的路径。