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.

AndraeRay
la source

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

Muntaser Ahmed
la source
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 .

Flimm
la source
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 .

mvermand
la source
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

Mwiza
la source
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

SHARATH P
la source
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 .

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
la source