1

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

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

当我输入npm bin -g(这应该意味着“全球”)时,我得到c:\users\shmuli\appdata\roaming\npm.

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

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

4

1 回答 1

1

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

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

例如,如果您从 运行脚本/path,并且在该文件夹本地安装了一个名为的模块foo,则只能require('foo')/path. 但是如果你是foo全局安装的,你可以require('foo')在文件系统的任何地方使用 Node 脚本,因为全局模块文件夹总是被检查的。

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


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

于 2013-09-25T03:44:14.883 回答