2014-09-29 149 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