Contenido del curso

Dominios en detalle de la certificación JSNAD

npm install desde GitHub con tag específico

Resumen

Si estás preparando la certificación JSNAT, dominar el manejo de package.json y npm install es clave para resolver el dominio que pesa el 6% del examen. Aquí te muestro cómo instalar una dependencia desde un repositorio de GitHub usando una versión específica, sin pasar por el registro de npm.

Qué evalúa el dominio de package.json en JSNAT

Este dominio mide tu capacidad para gestionar dependencias en un proyecto Node.js usando comandos de npm y entendiendo el sistema de versionado.

El ejercicio que vas a resolver es el task 12.1 y, aunque parece corto, exige dos conocimientos profundos: el comando npm install con todas sus variantes, y el sistema Semantic Versioning (SemVer), que define cómo Node.js interpreta las versiones de paquetes [0:25].

¿Qué es SemVer? Es el estándar de versionado MAJOR.MINOR.PATCH que usa npm para resolver qué versión de un paquete instalar. Entenderlo te permite controlar actualizaciones y compatibilidad.

La documentación oficial que debes consultar es la de npm install y la de semantic versioning. Sin ese fundamento, los ítems de este dominio se vuelven trampa.

Cómo modificar package.json para depender de un módulo desde GitHub

El reto pide modificar el package.json para que dependa del módulo colored, pero no desde el registro de npm, sino directamente desde su repositorio de Git, usando el tag v1.4.0 [1:20].

Luego de eso, el módulo debe quedar instalado en el directorio local node_modules antes de enviar la respuesta. Y por último, hay que editar answer.js para requerir el módulo.

Qué formas existen para instalar un paquete con npm install

La documentación de npm install muestra muchas variantes más allá del registro. Puedes instalar desde un tarball, desde una URL remota de Git o directamente desde GitHub usando el formato usuario/repositorio [2:30].

Las formas más comunes para traer un paquete desde GitHub son:

  • npm install git+remote-url con la URL completa del repositorio.
  • npm install usuario/repositorio en formato corto.
  • npm install usuario/repositorio#version para apuntar a un branch o tag específico.

El símbolo # es el que te permite anclar una versión tagueada o un branch concreto del repo. Esa es la pieza que resuelve el ejercicio.

Cómo encontrar el repositorio correcto del paquete

Para ubicar el repositorio de colored, vas a npm, buscas el paquete y revisas la sección repository en su ficha. Ahí aparece el usuario de GitHub y el nombre del repo, que es lo único que necesitas copiar [3:45].

Con eso armas el comando final dentro del directorio del task:

bash npm install usuario/colored#v1.4.0

Este comando hace dos cosas a la vez: descarga el módulo desde GitHub en la versión 1.4.0 y actualiza automáticamente el package.json con la dependencia apuntando al repo. Es más limpio que editar el JSON a mano.

¿Por qué tarda más instalar desde GitHub que desde npm? Porque npm clona el repositorio completo y resuelve el tag, mientras que el registro entrega un tarball ya empaquetado y optimizado.

Cómo requerir el módulo en answer.js y cerrar el ejercicio

Mientras la instalación corre, puedes adelantar la última parte del task: abrir answer.js y requerir el módulo recién instalado [4:30].

El código es de una sola línea:

javascript const colored = require('colored');

Cuando termina la instalación, el package.json refleja la dependencia colored apuntando al repositorio de GitHub con el tag v1.4.0, y el folder node_modules contiene el módulo listo para usar.

Ese es todo el ejercicio. La dificultad real no está en escribir el comando, sino en saber que existe esa sintaxis y entender cómo SemVer y npm install trabajan juntos para resolver dependencias fuera del registro.

¿Ya intentaste resolver el task 12.1 por tu cuenta? Cuéntame en los comentarios qué variante de npm install usaste y si te enfrentaste a algún error con el tag.