¿Qué es NPM?

NPM son 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) y utilizarlo para nuestros fines.

NPM: Node Package Manager

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 GNU/Linux en él, ya que ofrece una mejor experiencia.

¿Tengo NodeJS 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:

$ node --version
v14.6.0

$ npm --version
v6.14.7

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

Para instalar la última versión de node, 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_14.x | sudo -E bash -
$ sudo apt-get install -y nodejs

La primera línea descarga el script de instalación de Node 14 (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 algo parecido a lo siguiente:

$ npm --version
v6.14.7

$ npx --version
v6.14.7

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.

Manz
Publicado por Manz

Docente, divulgador informático y freelance. Autor de Emezeta.com, es profesor en la Universidad de La Laguna y dirige el curso de Programación web FullStack y Diseño web FrontEnd de EOI en Tenerife (Canarias). En sus ratos libres, busca GIF de gatos en Internet.