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.

AndraeRay
fuente

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

Muntaser Ahmed
fuente
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 .

Flimm
fuente
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 .

mvermand
fuente
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

Mwiza
fuente
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

SHARATH P
fuente
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í .

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