Aunque lo más habitual es utilizar npm
para instalar paquetes que son dependencias para un proyecto, también es posible instalar paquetes en el sistema de forma global sin necesidad de asociarlo a un proyecto concreto.
Esto es bastante usual en aplicaciones de linea de comandos donde queremos instalarlo como lo haríamos con apt-get
en un sistema GNU/Linux para tener acceso al comando principal y utilizarlo a nivel de sistemas.
Instalar paquetes de forma global
Para instalar paquetes con NPM sin asociarlos a un proyecto deberemos utilizar el flag --global
o -g
. Esto indicará a NPM que el paquete debe ser instalado en el sistema y estará disponible para los usuarios del sistema, sin necesidad de tenerlo como dependencia del proyecto:
$ npm install -g parrotsay
Con esto, NPM habrá instalado todos los archivos necesarios en la ruta «prefijo» global, que habitualmente es /usr
. De esta forma, todos los archivos del paquete parrotsay
se guardan en /usr/lib/node_modules/parrotsay/
, mientras que los archivos ejecutables se guardan en /usr/bin
, más especificamente, un enlace simbólico al ejecutable de node
de la primera carpeta mencionada.
Una vez instalado, podemos escribir lo siguiente para ejecutar parrotsay:
$ parrotsay lenguajejs.com
Lo que nos mostrará la siguiente salida:
Cuidado con las instalaciones globales. A priori, puede parecer muy interesante instalar paquetes de forma global pero puede tener ciertas implicaciones. Si realizas una instalación global de un paquete asegurate de que:
A) Se trate de un paquete de línea de comandos.
B) El paquete es para uso individual y no requiere estar ligado a un proyecto.
C) Si el paquete se utiliza en un proyecto, cada usuario que descargue el proyecto debe instalarlo de forma manual, por lo que asegurate de tener una razón de peso para no asociarlo como una dependencia del proyecto.
En nuestro caso hemos instalado el paquete parrotsay, que simplemente es una utilidad de línea de comandos, que nos muestra el loro del meme en una terminal, al estilo de la famosa utilidad de Linux cowsay. Al ser una utilidad del sistema, que no tiene relación directa con un proyecto, es seguro instalarlo como paquete global.
Avisos de error (npm WARN)
En ciertas instalaciones de NPM, observaremos que nos aparecen errores (o más concretamente, warnings) similares a los siguientes. En general, son mensajes y avisos destinados al desarrollador del paquete, por lo que no implican error por parte del usuario al instalar el paquete, pero en algunos casos si puede serlo.
Entre los errores más comunes, podemos encontrarnos cosas como las siguientes:
npm WARN deprecated
Son errores que avisan que una de las dependencias del paquete que instalamos está marcada como obsoleta. El desarrollador del paquete debería eliminarla y utilizar otra para el mismo fin.
npm WARN notsup
Estos errores suelen aparecer cuando tenemos una versión de node
o npm
que no soporta alguna de las dependencias del paquete o simplemente estamos usando un sistema operativo donde no es necesaria.
npm WARN checkPermissions
Error de permisos. Es bastante frecuente tener este problema y normalmente es debido a que se ha utilizado sudo
para instalar paquetes con NPM, algo que nunca se debería hacer. Veremos como solucionarlo en el siguiente capítulo: Problemas de permisos con NPM.
Ver paquetes globales instalados
Es posible que con el tiempo, no nos acordemos de los paquetes instalados de forma global en nuestro sistema. Una forma rápida y práctica para ver que paquetes tenemos instalados es utilizando el siguiente comando:
$ npm list -g --depth 0
/usr/lib
├── @11ty/[email protected]
├── @vue/[email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
- El parámetro
-g
o--global
nos muestra los paquetes globales - El parámetro
--depth 0
indica que no muestre dependencias, sólo el paquete principal
De esta forma será muy sencillo determinar que paquetes queremos eliminar de nuestro sistema para, por ejemplo, hacer espacio en disco.
Desinstalar paquetes globales
En el caso de que no queramos continuar con un paquete global instalado, podemos desinstalarlo facilmente con el siguiente comando:
$ npm uninstall -g parrotsay
Esto eliminará el paquete por completo de nuestro sistema.