Cómo saber si el paquete npm se instaló global o localmente


153

Estoy instalando grunt, node, npm, bower y grunt-cli en windows7.

Las instrucciones dicen que debería ejecutar los comandos de instalación con el indicador -g para global.

¿Cómo puedo verificar si utilicé el indicador -g cuando lo instalé? Tomará mucho tiempo desinstalarlos y reinstalarlos.

Respuestas:


219

Use el listcomando con la -gbandera para ver todos los paquetes que están instalados globalmente:

npm list -g

Para verificar si un paquete específico está instalado globalmente, puede proporcionar el nombre del paquete ( grunten este caso) como se ve a continuación:

npm list -g grunt

O puede usar greppara filtrar los nombres de los paquetes:

npm list -g | grep grunt

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


44
Para un booleano "instalado o no?" comprobar, trate de usar --depth. Por ejemplo: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Aquí hay un ejemplo más detallado .
Adam Monsen

2
@ AdamMonsen, estaba buscando la instalación de nivel superior de charrán. Solía npm list --depth 0 --global terncomprobar si tern estaba instalado globalmente como sinpm install -g tern
Sudhi el

grepparece una solución bastante confiable dados los comentarios acerca de que npm sale con un error debido a dependencias insatisfechas
myol

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

Luego puede verificar el estado de salida para ver si está instalado o no. Gracias Adam Monsen .


3
gracias por --depth 1! Eso es lo que estaba buscando. En realidad estoy usando ahoranpm list --depth 0 -g
revelt

Por alguna razón, $?siempre 1me regresa , incluso si el paquete está instalado o NO instalado.
Katie

44
ADVERTENCIA: npm siempre saldrá con un error si alguno de sus paquetes tiene dependencias insatisfechas, incluso si el paquete está instalado . @Kayvar es por eso que npm está devolviendo 1 para ti.
Codebling

17

Para verificar si un paquete específico está instalado globalmente, ejecute:

npm list -g [package-name]

Tomemos "gruñido" como ejemplo. Si está instalado globalmente, debería ver algo como esto

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

Si no está instalado globalmente, debería ver algo como esto

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

Para verificar si un paquete específico está instalado localmente, puede ejecutar los mismos comandos que antes pero sin el parámetro -g.

fuente: Cómo verificar si el paquete npm se instaló global o localmente .


6

Puede enumerar todos los paquetes globales con el comando:

npm ls -g

O busque un paquete específico con:

npm ls -g [package-name] 

Por ejemplo: npm ls -g @angular/cli


1

En Windows utilizamos el siguiente comando para averiguar si el paquete está instalado o no. Por favor refiérase a la imagen para más detalles.

npm list -g | find "create"

resultado de muestra


0

De tu paquete 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

Esto me resultó útil cuando tuve que distribuir archivos preconstruidos con mi paquete: ¿Cómo publicar un paquete npm con archivos de distribución? Con este paquete, puedo verificar si la instalación es local o global, y luego usar rutas relativas para instalaciones locales, como se muestra aquí .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.