Comment savoir si le package npm a été installé globalement ou localement


154

J'installe grunt, node, npm, bower et grunt-cli sur windows7.

Les instructions indiquent que je dois exécuter les commandes d'installation avec l'option -g pour global.

Comment puis-je vérifier si j'ai utilisé l'indicateur -g lors de l'installation. Il faudra beaucoup de temps pour les désinstaller et les réinstaller.

Réponses:


220

Utilisez la listcommande avec l' -gindicateur pour voir tous les packages installés globalement:

npm list -g

Pour vérifier si un package spécifique est installé globalement, vous pouvez fournir le nom du package ( gruntdans ce cas) comme indiqué ci-dessous:

npm list -g grunt

Ou vous pouvez utiliser greppour filtrer sur les noms de packages:

npm list -g | grep grunt

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


4
Pour un booléen "installé ou pas?" vérifier, essayez d'utiliser --depth. Par exemple: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Voici un exemple plus détaillé .
Adam Monsen

2
@AdamMonsen, je cherchais une installation de haut niveau de stern. J'avais l'habitude npm list --depth 0 --global ternde vérifier si tern était installé globalement comme sinpm install -g tern
Sudhi

grepsemble être une solution assez fiable compte tenu des commentaires sur la sortie de npm avec une erreur due à des dépendances non satisfaites
myol

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

Vous pouvez ensuite vérifier l'état de sortie pour voir s'il est installé ou non. Merci Adam Monsen .


3
merci pour --depth 1! c'est ce que je cherchais. En fait, j'utilise maintenantnpm list --depth 0 -g
revelt

Pour une raison quelconque, $?revient toujours 1pour moi, même si le package EST installé ou PAS installé.
Katie

4
AVERTISSEMENT: npm se fermera toujours avec une erreur si l'un de vos packages a des dépendances non satisfaites, même si le package est installé . @Kayvar c'est pourquoi npm renvoie 1 pour vous.
Codage

17

Pour vérifier si un package spécifique est installé globalement, exécutez:

npm list -g [package-name]

Prenons "grunt" comme exemple. S'il est installé globalement, vous devriez voir quelque chose comme ça

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

S'il n'est pas installé globalement, vous devriez voir quelque chose comme ça

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

Pour vérifier si un package spécifique est installé localement, vous pouvez exécuter les mêmes commandes que ci-dessus mais sans le paramètre -g.

source: Comment vérifier si le package npm a été installé globalement ou localement .


6

Vous pouvez lister tous les packages globaux avec la commande:

npm ls -g

Ou recherchez un package spécifique avec:

npm ls -g [package-name] 

Par exemple: npm ls -g @angular/cli


1

Sous Windows, nous utilisons la commande suivante pour savoir si le package est installé ou non. Veuillez vous référer à l'image pour plus de détails.

npm list -g | find "create"

résultat de l'échantillon


0

De votre colis avec sindresorhus/is-installed-globally

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

Usage:

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

J'ai trouvé cela utile lorsque je devais distribuer des fichiers prédéfinis avec mon package: Comment publier un package npm avec des fichiers de distribution? Avec ce package, je peux vérifier si l'installation est locale ou globale, puis utiliser des chemins relatifs pour les installations locales, comme indiqué ici .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.