Hemos visto cómo usar NPM para instalar paquetes localmente, que solo afectan a nuestro proyecto. Pero también es posible instalar paquetes globalmente.
La instalación global de paquetes en NPM se refiere a la acción de instalar un paquete en una ubicación accesible en todo el sistema, en lugar de instalarlo específicamente en un proyecto.
La instalación global de paquetes en NPM es conveniente en ocasiones. Pero también tiene importantes desventajas, y conviene comprender cuándo es apropiado recurrir ella *(y utilizarla con prudencia).
Como norma general, debemos usar siempre paquetes locales y únicamente usar paquetes globales cuando no quede otra alternativa. Por ejemplo, en el caso de herramientas de línea de comandos, si el autor no da otra alternativa.
Muchas de los casos en los que antes teníamos que usar un paquete global, pueden resolverse con NPX. Leer más en Qué es y cómo usar NPX
Cómo se instalar un paquete globalmente
La instalación global de paquetes es un proceso sencillo. Para llevar a cabo una instalación global, debes utilizar el siguiente comando en tu terminal:
npm install -g nombre_del_paquete
Como vemos, la única diferencia es que le hemos puesto el parámetro -g
para indicar que queremos que el paquete se instale globalmente
NPM descargará el paquete y lo instalará en una ubicación global, donde Node.js puede acceder a él en cualquier momento. Generalmente en una carpeta específica de tu sistema.
%USERPROFILE%\AppData\Roaming\npm\node_modules
/usr/local/lib/node_modules
En la mayoría de los casos, necesitarás permisos de administrador (o modo superusuario) para realizar instalaciones globales en tu sistema
Como listar los paquetes instalados
Podemos consultar los paquetes que tenemos instalados globalmente en nuestro sistema consultando la carpeta que hemos dicho anteriormente.
O, de forma más sencilla, podemos usar este comando
npm list -g
Que nos mostrará un listado
C:\Users\user_name\AppData\Roaming\npm
+-- @vue/cli@5.0.8
+-- astro@1.9.2
+-- electron@24.1.3
+-- gulp-cli@2.3.0
+-- nativefier@50.1.1
+-- pnpm@7.25.0
+-- serve@14.0.1
+-- typescript@4.8.4
+-- vite@3.1.8
+-- vsce@2.13.0
`-- yarn@1.22.19
Ventajas y desventajas
La instalación global de paquetes ofrece varias ventajas y desventajas para los desarrolladores, que debemos tener en cuenta. En general, hay más desventajas que ventajas y salvo causa mayor, preferiremos los paquetes locales.
Ventajas
Acceso universal: Una vez instalado un paquete globalmente, puedes utilizarlo en cualquier proyecto o aplicación de Node.js en tu máquina. Esto evita la necesidad de instalar el mismo paquete una y otra vez en diferentes proyectos, lo que ahorra tiempo y espacio en disco.
Herramientas de línea de comandos: Muchos paquetes en NPM ofrecen herramientas de línea de comandos que pueden ser útiles en el desarrollo diario. La instalación global de estos paquetes permite acceder a estas herramientas desde cualquier ubicación en tu sistema.
Desventajas
Conflicto de versiones: La mayor desventaja es que la instalación global puede conducir a conflictos de versiones entre diferentes proyectos que utilizan el mismo paquete. Si un proyecto requiere una versión específica de un paquete y otro proyecto requiere una versión diferente, pues… 💥
Dependencia del entorno local: Los paquetes instalados globalmente pueden depender de variables de entorno locales o ubicaciones específicas en el sistema. Esto podría causar problemas si compartes tu código con otros desarrolladores que tienen configuraciones diferentes.