So erkennen Sie, ob das npm-Paket global oder lokal installiert wurde


152

Ich installiere grunt, node, npm, bower und grunt-cli unter Windows 7.

Die Anweisungen besagen, dass ich die Installationsbefehle mit dem Flag -g für global ausführen sollte.

Wie kann ich überprüfen, ob ich bei der Installation das Flag -g verwendet habe? Es wird viel Zeit in Anspruch nehmen, sie zu deinstallieren und neu zu installieren.

Antworten:


218

Verwenden Sie den listBefehl mit dem -gFlag, um alle global installierten Pakete anzuzeigen:

npm list -g

Um zu überprüfen, ob ein bestimmtes Paket global installiert ist, können Sie den Namen des Pakets ( gruntin diesem Fall) wie folgt angeben :

npm list -g grunt

Oder Sie können grepnach Paketnamen filtern:

npm list -g | grep grunt

Quelle: https://docs.npmjs.com/cli/ls


4
Für einen booleschen "installiert oder nicht?" Überprüfen Sie, versuchen Sie es mit --depth. Zum Beispiel : npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Hier ist ein detaillierteres Beispiel .
Adam Monsen

2
@AdamMonsen, ich suchte nach einer Installation von Seeschwalbe auf höchster Ebene . Ich habe immer npm list --depth 0 --global ternüberprüft, ob Seeschwalbe global installiert wurde, als obnpm install -g tern
Sudhi

grepscheint eine ziemlich zuverlässige Lösung zu sein, wenn man bedenkt, dass npm mit einem Fehler aufgrund nicht erfüllter Abhängigkeiten beendet wird
myol

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

Sie können dann den Exit-Status überprüfen, um festzustellen, ob er installiert ist oder nicht. Danke Adam Monsen .


3
danke für --depth 1! das habe ich gesucht. Eigentlich benutze ich jetztnpm list --depth 0 -g
revelt

Aus irgendeinem Grund $?kehrt 1für mich immer zurück , auch wenn das Paket installiert oder NICHT installiert ist.
Katie

4
WARNUNG: npm wird immer mit einem Fehler beendet, wenn eines Ihrer Pakete nicht erfüllte Abhängigkeiten aufweist, selbst wenn das Paket installiert ist . @ Kayvar Aus diesem Grund gibt npm 1 für Sie zurück.
Codebling

17

So überprüfen Sie, ob ein bestimmtes Paket global installiert ist:

npm list -g [package-name]

Nehmen wir als Beispiel "Grunzen". Wenn es global installiert ist, sollten Sie so etwas sehen

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5

Wenn es nicht global installiert ist, sollten Sie so etwas sehen

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

Um zu überprüfen, ob ein bestimmtes Paket lokal installiert ist, können Sie dieselben Befehle wie oben ausführen, jedoch ohne den Parameter -g.

Quelle: So überprüfen Sie, ob das npm-Paket global oder lokal installiert wurde .


6

Sie können alle globalen Pakete mit dem folgenden Befehl auflisten:

npm ls -g

Oder suchen Sie nach einem bestimmten Paket mit:

npm ls -g [package-name] 

Beispielsweise: npm ls -g @angular/cli


1

In Windows verwenden wir den folgenden Befehl, um herauszufinden, ob das Paket installiert ist oder nicht. Bitte beziehen Sie sich auf das Bild für Details.

npm list -g | find "create"

Probenergebnis


0

Aus Ihrem Paket mit sindresorhus/is-installed-globally

https://github.com/sindresorhus/is-installed-globally

Verwendung:

const isInstalledGlobally = require('is-installed-globally');

// With `npm install your-package`
console.log(isInstalledGlobally);
//=> false

// With `npm install --global your-package`
console.log(isInstalledGlobally);
//=> true

Ich fand dies nützlich, als ich vorgefertigte Dateien mit meinem Paket verteilen musste: Wie veröffentliche ich ein npm-Paket mit Verteilungsdateien? Mit diesem Paket kann ich überprüfen, ob die Installation lokal oder global ist, und dann relative Pfade für lokale Installationen verwenden, wie hier gezeigt .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.