Lección 10. NPM.

NPM (Node Package Manager) es el gestor de paquetes de Node.js. Sirve para instalar, gestionar y compartir bibliotecas y herramientas de JavaScript.

Se incluye automáticamente cuando instalas Node.js.

Página de NPM:

Página oficial de NPM.

También para verificar la versión de gestor de paquetes NPM puedes ejecutar:

Copiar código
npm --version

Nota: Esto devolverá el numero de versión de NPM instalado dentro del equipo.

Inicialización de NPM._

Para iniciar y crear un proyecto de NPM, ejecutamos el comando:

Copiar código
npm init

Al ejecutar este comando, se nos pediran algunos datos claves de nuestro proyecto a crear, los cuales son:

Nota: Al terminar de configurarse, podremos visualizar un JSON con nuestras configuraciones, el cual también será guardado en el directorio de nuestro proyecto dentro de un archivo llamado package.json.

Si queremos automatizar todo este proceso de configuración, también podemos ejecutar el comando:

Copiar código
npm init -y

Nota: El comando anterior omite todas las preguntas y crea el archivo vacío, el cual podrá configurarse después.

Instalar dependencias de NPM en proyecto._

Si deseamos instalar una dependencia, para utilizarla en nuestro proyecto (una vez inicializado con el npm init), ahora bastará con ejecutar simples comandos como:

Copiar código
npm install <nombre-dependencia>

Hagamos un ejemplo de una instalacion, para ello, intalaremos la dependencia llamada:

Picocolors

Para mas información:

Página de información de Picocolors en NPM.

Repositorio de Picocolors en Github.

El cual utilizaremos para nuestro archivo de código realizado en la clase anterior Clase 07:

Para ello, después de leer la documentación de la dependencia:

La pagina de NPM nos da el comando de:

Copiar código
npm i picocolors

Nota: Podemos obtener los comandos de instalación de las dependencias buscándolas en la pagina oficial de NPM.

Al ejecutarse e instalarse, debería mostrarse algo similar a:

Copiar código
> npm i picocolors

  added 1 package, and audited 2 packages in 3s
  found 0 vulnerabilities

Y ahora, dentro de nuestro package.json deberíamos visualizar un apartado similar a:

Copiar código
"dependencies": {
  "picocolors": "^1.1.1"
}

Lo que significaría que picocolors en su versión 1.1.1 ha sido instalado y listo para utilizarse dentro de nuestro proyecto.

Nota: Si somos observadores, podremos visualizar ahora en el directorio de nuestro proyecto, un nuevo directorio llamado: node_modules, el cual contiene dentro, otro directorio llamado picocolors; Esto es como si hubiéramos descargado la librería completa de nuestra dependencia, lista para utilizarse dentro de nuestro proyecto desde cualquier lugar.

Cuando instalamos dependencias, podemos descargar al mismo tiempo, si esta necesita alguna dependencia para funcionar, se descargará también, por lo que, al hacerlo, podrían crearse no solamente 1 directorio, sino varios, procedentes de las dependencias necesarias, ocasionando de esta manera, un evento en cascada.

Desinstalar dependencias de NPM en proyecto._

Para realizar esta acción, es tan simple como ejecutar el comando:

Copiar código
npm uninstall <nombre-dependencia>

Nota: Desinstalar una dependencia, también desinstalará las dependencias útiles para el funcionamiento de dicha, por lo que no es necesario preocuparse por ello.

Importar dependencia en proyecto._

Para importar nuestra dependencia en nuestro proyecto, basta con:

Ir a nuestro archivo a utilizar y colocar la importación:

Copiar código
const pc = require("picocolors");

O si es un .mjs:

Copiar código
import pc from "picocolors"

Nota: Este código también se encuentra en la documentación del proyecto, en NPM o Github.

De esta manera, podremos utilizar ya los métodos proporcionados dentro del archivo de nuestro código.

Veamos algunos cambios dentro de nuestro código:

Copiar código
console.error(pc.yellow(`No se pudo leer el directorio: ${folder}`));

Donde, el mensaje en consola, se mostrará en texto color yellow.

E incluso jugar aun más profesional, con bg y el color:

Copiar código
fileInfo.forEach(fileInfo => console.log(
  pc.bgGreen(
    pc.blue(fileInfo)
  )
));

Donde, se imprime el texto con un background color green y el texto de blue.

Nota: Este es un ejemplo simple de el uso de una dependencia en Node.js con ayuda de NPM.