2014-09-29 203 views

回答

104

使用list命令与-g标志地看到,在全球范围内安装的所有软件包:

npm list -g

要检查是否在全球安装了特定的软件包,可以提供包的名称(grunt在这种情况下),如下图所示:

npm list -g grunt

或者您可以使用grep到过滤器O N包装名称:

npm list -g | grep grunt

来源:https://docs.npmjs.com/cli/ls

+2

对于布尔“安装或不?”检查,尝试使用'--depth'。例如:'npm list --depth 1 --global csats -mturk>/dev/null 2>&1'。[这是一个更详细的例子](https://gitlab.com/snippets/3883)。 – 2015-03-19 23:20:34

+0

@AdamMonsen:谢谢,我把你的评论变成了答案。 – Flimm 2015-07-03 14:48:02

+1

@AdamMonsen,我正在寻找ter的_top level_安装。我用'npm list --depth 0 --global tern'来检查tern是否全局安装,就好像'npm install -g tern' – Sudhi 2016-03-16 13:47:03

11

要检查是否在全球范围安装包的特殊执行:

npm list -g [package-name] 

让我们 “咕噜” 为例。 如果全球的装机量,你会看到这样的事情

C:\data\tryout\test1>npm list -g grunt 
C:\Users\xxxxxxx\AppData\Roaming\npm 
└── [email protected] 

如果没有全球的装机量,你会看到这样的事情

C:\data\tryout\test1>npm list -g grunt 
C:\Users\xxxxxxx\AppData\Roaming\npm 
└── (empty) 

要检查是否有特定的软件包安装在本地您可以执行与上面相同的命令,但不带-g参数。

来源:How to check if npm package was installed globally or locally

23
npm list --depth 1 --global packagename > /dev/null 2>&1 

然后,您可以检查退出状态以查看它是否已安装。谢谢Adam Monsen

+3

感谢'--depth 1'!这就是我一直在寻找的。其实我现在在使用'npm list --depth 0 -g' – revelt 2016-07-28 09:13:53

+0

由于某些原因'$?'总是为我返回'1',即使包已安装或未安装。 – Kayvar 2016-10-05 18:41:40

+0

我为此提出了一个问题:https://github.com/mikedeboer/node-github/issues/427 – Kayvar 2016-10-05 20:16:44

0

可以列出与指挥全球所有包:

npm ls -g 

或者检查特定的包带:

npm ls -g [package-name] 

例如:npm ls -g @angular/cli