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

我最近开始使用 npm 进行 JavaScript 包管理。虽然我对不同环境中的包管理有一定的了解(比如使用 恰到好处Rvm/gemPythonbrew/viralenv/pip) ,但是我不太理解 npm 是如何完全适应的。

我想知道更多关于“-g”标志是如何工作的,以及为什么要使用它。

和大多数博客和 wiki 一样,他们在安装时使用“-g”而没有解释原因,我知道这些软件包是全局安装的。

  • 但是为什么我总是要在全球范围内安装这些软件包呢?
  • 安装这些没有“-g”标志的软件包意味着什么?
  • 如何在本地安装软件包,比如说为不同的项目安装沙箱?
  • 那么,如果我需要用版本控制(如果可能的话)检入 npm 包,我如何列出项目中使用的 npm 包并将其捆绑到项目中呢?
45632 次浏览

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

经验法则:

  • 如果包提供命令行工具,则全局安装
  • 如果将包作为应用程序的一部分使用,请在本地安装
  • 如果两个用例都适用,则在本地全局安装 还有

虽然 公认的答案是正确的,但请注意还有 npx,它允许方便地运行本地工具。

有关更多信息,请参见 介绍 npx: 一个 npm 包管理器