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

时间:2012-01-18 12:18:27

标签: npm

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

我想更多地了解“-g”标志的工作原理以及我为什么要使用它。 与大多数博客和维基一样,他们在安装时使用“-g”而不解释原因,我理解这些包是全局安装的。

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

2 个答案:

答案 0 :(得分:107)

-g全局安装标记,如this answer中所述。它在this node blog post中有详细介绍。

经验法则:

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

答案 1 :(得分:0)

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

有关更多信息,请参见https://blog.npmjs.org/post/162869356040/introducing-npx-an-npm-package-runner