什么时候应该用“-g”标志来使用npm,为什么?

我最近开始使用npm进行js包pipe理。 虽然我在不同的环境中对包pipe理有一个公正的理解(比如说使用apt,rvm / gem,pythonbrew / virtualenv / pip),但是我不太了解npm是如何完全适应的。

我想知道更多有关“-g”标志如何工作,为什么我应该使用它。 和大多数博客和维基一样,他们在安装时指的是使用“-g”而不解释原因,而且我知道这些软件包是全局安装的。

  • 但是为什么我应该总是在全球安装这些软件包
  • 安装这些没有“-g”标志的软件包意味着什么?
  • 我该怎么做在本地安装软件包,可以说沙箱为不同的项目?
  • 那我该如何做一个项目中使用的npm包列表,并将其捆绑在项目中,如果需要的话用版本控制(如果可能的话)检查它呢?

-g全局安装标志 ,正如在这个答案中所解释的那样。 它在这个节点博客文章中详细介绍。

经验法则:

  • 如果软件包提供命令行工具,则全局安装
  • 如果您将该软件包用作应用程序的一部分,请在本地安装
  • 如果同时使用这两种使用情况,请在全局本地安