Come sapere se il pacchetto npm è stato installato a livello globale o locale


154

Sto installando grunt, node, npm, bower e grunt-cli su windows7.

Le istruzioni dicono che dovrei eseguire i comandi di installazione con -g flag per global.

Come posso verificare se ho usato il flag -g quando ho installato. Ci vorrà molto tempo per disinstallarli e reinstallarli.

Risposte:


220

Utilizzare il listcomando con il -gflag per visualizzare tutti i pacchetti installati a livello globale:

npm list -g

Per verificare se un pacchetto specifico è installato a livello globale, è possibile fornire il nome del pacchetto ( gruntin questo caso) come mostrato di seguito:

npm list -g grunt

Oppure puoi usare grepper filtrare i nomi dei pacchetti:

npm list -g | grep grunt

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


4
Per un booleano "installato o no?" controlla, prova a usare --depth. Ad esempio: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Ecco un esempio più dettagliato .
Adam Monsen,

2
@AdamMonsen, stavo cercando l' installazione di alto livello di sterna. Ero solito npm list --depth 0 --global ternverificare se la sterna fosse installata a livello globale come senpm install -g tern
Sudhi

grepsembra una soluzione abbastanza affidabile visti i commenti sull'uscita di npm con un errore dovuto a dipendenze non soddisfatte
myol

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

È quindi possibile controllare lo stato di uscita per vedere se è installato o meno. Grazie Adam Monsen .


3
grazie per --depth 1! questo è quello che stavo cercando. In realtà sto usando oranpm list --depth 0 -g
rinnovato il

Per qualche motivo $?ritorna sempre 1per me, anche se il pacchetto è installato o NON installato.
Katie,

4
ATTENZIONE: npm uscirà sempre con un errore se uno dei tuoi pacchetti ha dipendenze non soddisfatte, anche se il pacchetto è installato . @Kayvar questo è il motivo per cui npm sta tornando 1 per te.
Codebling

17

Per verificare se un pacchetto specifico è installato a livello globale, eseguire:

npm list -g [package-name]

Prendiamo "grugnito" come esempio. Se è installato a livello globale, dovresti vedere qualcosa del genere

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

Se non è installato a livello globale, dovresti vedere qualcosa del genere

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

Per verificare se un pacchetto specifico è installato localmente è possibile eseguire gli stessi comandi di cui sopra ma senza il parametro -g.

fonte: come verificare se il pacchetto npm è stato installato a livello globale o locale .


6

Puoi elencare tutti i pacchetti globali con il comando:

npm ls -g

Oppure cerca un pacchetto specifico con:

npm ls -g [package-name] 

Per esempio: npm ls -g @angular/cli


1

In Windows utilizziamo il seguente comando per scoprire se il pacchetto è installato o meno. Si prega di fare riferimento all'immagine per i dettagli.

npm list -g | find "create"

risultato del campione


0

Dal tuo pacchetto con sindresorhus/is-installed-globally

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

Uso:

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

L'ho trovato utile quando ho dovuto distribuire file predefiniti con il mio pacchetto: come pubblicare un pacchetto npm con file di distribuzione? Con questo pacchetto, posso verificare se l'installazione è locale o globale, quindi utilizzare i percorsi relativi per le installazioni locali, come mostrato qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.