我何时应该使用带有"-g"标志的npm,为什么?

suV*_*... 103 npm

我最近开始使用npm进行js包管理.虽然我对不同环境中的包管理有一个公平的理解(假设使用apt,rvm/gem,pythonbrew/virtualenv/pip),但我不太明白npm是如何完全适应的.

我想知道更多关于"-g"标志如何工作以及为什么要使用它.和大多数博客和维基一样,他们在安装时使用"-g"而不解释原因,我理解这些包是全局安装的.

  • 但为什么我要始终全局安装这些包?
  • 没有"-g"标志安装这些软件包意味着什么?
  • 如何在本地安装软件包,让我们说沙箱用于不同的项目?
  • 那么我怎样才能制作一个项目中使用的npm包列表,如果我需要它用版本控制检查它(如果可能的话)?

cbe*_*ski 112

-g全局安装标志,如本答案中所述.这节点博客文章详细介绍了.

经验法则:

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


fab*_*abb 5

虽然接受的答案是正确的,但请注意,还npx可以方便地运行本地工具。

有关更多信息,请参阅npx 简介:npm 包运行程序