¿Qué es NPM?

Node Package Manager: Instalador de paquetes Javascript


NPM se puede considerar como las siglas de Node Package Manager, es decir, gestor de paquetes de NodeJS, un entorno de ejecución multiplataforma para ejecutar Javascript no sólo en un navegador web (como se concibió originalmente) sino fuera de él, y poder utilizarlo en sistemas de escritorio o servidores web.

Este gestor de paquetes (muy similar al concepto de apt-get en GNU/Linux), nos permitirá instalar de forma muy sencilla y automática paquetes Javascript (tanto de Node como Javascript para el navegador) para poder utilizarlos y mantenerlos en los proyectos o sistemas que utilicemos.

En esta guía vamos a ver como instalar NodeJS en un sistema GNU/Linux. Aunque existe una versión de NodeJS para Windows, recomendamos altamente instalar Windows Subsystem for Linux (WSL) e instalar la versión de NodeJS para GNU/Linux en él, ya que ofrece una mejor experiencia a largo plazo.

¿Tengo Node o NPM instalado?

Para comenzar, necesitaremos instalar NodeJS en su versión LTS (recomendada) o en su última versión (experimental) si quieres tener las últimas novedades. Al instalar Node, se instalará automáticamente su gestor de paquetes y algunas otras utilidades interesantes que necesitaremos.

En primer lugar, vamos a comprobar si tenemos NodeJS/NPM instalado y que versión tenemos:

# Muestra la versión de Node
$ node --version

# Muestra la versión de NPM
$ npm --version

En el caso de que no tengamos node instalado en nuestro sistema, se nos mostrará un mensaje de error como node: command not found o similar, en cuyo caso deberemos proceder a instalarlo (necesitaremos tener privilegios de root o permisos de sudo).

En el caso de tener una versión muy antigua, también podemos realizar los pasos que veremos a continuación y aprovechar para actualizarlo.

Instalación de Node/NPM

¡ALTO! Existen varias formas de instalar NodeJS. En las siguientes líneas se explica la instalación oficial de NodeJS. Sin embargo, no la recomiendo ya que suelen surgir problemas de instalación de paquetes y permisos que son complicados de resolver. En su lugar, recomiendo altamente realizar la instalación de NodeJS mediante PNPM o la instalación de NodeJS mediante NVM, ya que simplifican y automatizan la instalación y permite el cambio de versiones de Node de forma cómoda y rápida, algo que no es posible mediante la forma oficial.

Para instalar la última versión de node de la forma oficial, en primer lugar nos aseguraremos de tener instalados los comandos curl y sudo (puedes instalarlos con apt-get si no los tienes), ya que son necesarios para la instalación de Node.

Escribimos las siguientes líneas en la terminal:

$ curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt-get install -y nodejs

La primera línea descarga el script de instalación de Node 18 (puedes modificar el número por la versión que desees) y lo ejecuta en nuestro sistema con permisos de administrador. Este script realizará las tareas necesarias para añadir los repositorios oficiales de Node en apt-get.

De esta forma, al ejecutar la siguiente línea, pediremos a apt-get que instale la última versión de Node desde dichos repositorios, ya añadidos en el sistema. Si todo ha ido bien, volvemos a comprobar la versión de npm y una utilidad llamada npx, y ahora sí, debería salirnos su versión respectiva:

# NPM y NPX deberían mostrar la misma versión
$ npm --version

# NPX es una herramienta relacionada con NPM que explicaremos más adelante
$ npx --version

Si tienes problemas, por aquí tienes instrucciones de instalación de NodeJS en otros sistemas y algo más de información.

¿Para que usaremos NPM?

Ahora que tenemos node y su gestor de paquetes npm disponible en nuestro sistema, podremos instalar paquetes de NPM en nuestros proyectos y/o en nuestro sistema.

Aunque profundizaremos más adelante, hay 2 modalidades principales para utilizar NPM:

  • A nivel de proyecto: Probablemente la modalidad más utilizada es la de usar NPM como un gestor de dependencias de un proyecto, esto es, un sistema con el que controlamos que paquetes o librerías Javascript están instalados (y que versión), de modo que quedan asociados al proyecto en sí. Esto facilita que si un usuario diferente se descarga el proyecto, pueda gestionarlo fácil y rápidamente (instalar paquetes, actualizarlos, etc...)

  • A nivel global: Existen algunas situaciones específicas, en las que los paquetes son realmente utilidades que no se utilizan en proyectos, muy común en aplicaciones de línea de comandos (CLI) que usamos desde terminal. En esta modalidad, los paquetes se instalan a nivel del sistema (no en la carpeta del proyecto), por lo que están disponibles siempre que el usuario quiera utilizarlos, sin necesidad de tenerlo en cada proyecto.

En los próximos capítulos veremos como instalar y desinstalar paquetes de NPM y que cosas debemos tener en cuenta para el mantenimiento de los mismos.

Alternativas a NPM

Existen algunas alternativas a NPM que añaden características y/o permiten realizar las mismas tareas de NPM pero de una forma alternativa que ofrece ciertas ventajas. Entre estas alternativas podemos encontrar:

Nombre Descripción
PNPM Alternativa rápida que hace uso eficiente del espacio en disco.
Ultra Alternativa ultrarápida a NPM. Mejora aún más el rendimiento de PNPM.
Yarn Una de las primeras alternativas a NPM.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev