3-Package.json y NPM -Curso de Node.js [ #03 Package.json y NPM ]
Package.json, Dependencias y NPM
Introducción
¡Bienvenidos a un nuevo tutorial! Hoy vamos a aprender qué es el package.json, cómo funcionan las dependencias y cómo trabajar con NPM (Node Package Manager).
📌 ¿Qué es NPM?
NPM significa Node Package Manager y es el administrador de paquetes estándar para Node.js. Gracias a NPM podemos agregar "superpoderes" a nuestras aplicaciones utilizando paquetes creados por otros desarrolladores.
Nota: NPM se instala automáticamente cuando instalas Node.js.
🚀 Paso 1: Inicializar nuestro proyecto con npm init -y
Para comenzar, debemos crear el archivo package.json en nuestro proyecto. Este archivo contendrá información importante como:
Nombre del proyecto
Versión
Descripción
Scripts
Dependencias
Comando:
npm init -y¿Qué significa la bandera -y?
La bandera -y (yes) acepta todas las opciones por defecto sin hacer preguntas.
Resultado:
Se crea un archivo package.json similar a esto:
{
"name": "Fundamentos",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}📁 ¿Qué contiene el package.json?
| Campo | Descripción |
|---|---|
name | Nombre de tu proyecto |
version | Versión actual (semver: mayor.menor.parche) |
description | Descripción del proyecto |
main | Punto de entrada de la aplicación |
scripts | Comandos que se pueden ejecutar con npm run |
dependencies | Paquetes necesarios para que funcione el proyecto |
devDependencies | Paquetes solo para desarrollo |
keywords | Palabras clave del proyecto |
author | Autor del proyecto |
license | Licencia del proyecto |
🔧 Paso 2: Instalar nuestro primer paquete
Vamos a instalar el paquete cowsay como ejemplo. Este paquete hace que una vaquita hable en la terminal.
Comando de instalación (local):
npm install cowsayo usando la versión abreviada:
npm i cowsay¿Qué sucede después de la instalación?
Se crea la carpeta
node_modules- aquí se guardan todos los paquetes instaladosSe actualiza el
package.jsonañadiendo las dependencias:
"dependencies": {
"cowsay": "^1.4.0"
}Se crea el archivo
package-lock.json- este archivo bloquea las versiones exactas de los paquetes instalados
🐮 Paso 3: Usar el paquete instalado
Ahora podemos usar cowsay en nuestro código:
// app.js
const cowsay = require("cowsay");
console.log(cowsay.say({
text: "Hola amigos de bluuweb",
e: "o0", // los ojos de la vaca
T: "U " // la lengua
}));Para ejecutar:
node app.jsResultado:
< Hola amigos de bluuweb >
-----------------
\ ^__^
\ (o0)\_______
(__)\ )\/\
U ||----w |
|| ||📊 Tipos de Dependencias
Dependencies (dependencias de producción)
Son necesarias para que la aplicación funcione en producción:
"dependencies": {
"cowsay": "^1.4.0",
"express": "^4.18.0"
}DevDependencies (dependencias de desarrollo)
Solo necesarias durante el desarrollo:
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1"
}Para instalar como devDependency:
npm install --save-dev nombre-del-paquete
# o
npm i -D nombre-del-paquete🌍 Instalación Local vs Global
| Tipo | Comando | Ubicación | Uso |
|---|---|---|---|
| Local | npm install cowsay | node_modules del proyecto | Paquetes que tu proyecto necesita |
| Global | npm install -g cowsay | Sistema (computadora) | Herramientas de línea de comandos (CLI) |
Ejemplo de instalación global:
npm install -g cowsay
# Luego puedes ejecutar directamente:
cowsay "Hola mundo"🏃 npx: Ejecutar paquetes sin instalar globalmente
npx ejecuta un paquete sin necesidad de instalarlo de forma global:
npx cowsay "Hola sin instalar globalmente"¿Para qué sirve npx?
Ejecutar paquetes sin instalarlos permanentemente
Usar diferentes versiones de un mismo paquete
Ejecutar CLIs como
create-react-app:
npx create-react-app mi-app📦 La carpeta node_modules
Contiene todos los paquetes y sus dependencias
NO se debe subir a GitHub (pesa mucho)
Se puede volver a generar con
npm install
Por qué no compartir node_modules:
Ocupa mucho espacio
Contiene miles de archivos
Se puede recrear fácilmente
🔄 Reconstruir un proyecto
Si alguien te envía un proyecto con package.json pero sin node_modules:
# Instalar todas las dependencias
npm install
# o
npm iEsto leerá el package.json y descargará todas las dependencias necesarias.
🎮 Scripts en package.json
Los scripts son atajos para comandos comunes:
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js",
"test": "echo \"Error: no test specified\" && exit 1"
}Para ejecutar scripts:
npm start # para el script "start" (no necesita run)
npm run dev # para otros scripts
npm test # para el script "test" (no necesita run)📈 Actualizar paquetes
Actualizar un paquete específico:
npm update cowsayActualizar todos los paquetes:
npm updateVerificar qué paquetes tienen actualizaciones:
npm outdated🗑️ Desinstalar paquetes
npm uninstall cowsay
# o
npm un cowsay📝 Resumen de comandos útiles
| Comando | Descripción |
|---|---|
npm init -y | Crear package.json |
npm install | Instalar todas las dependencias |
npm install <paquete> | Instalar paquete como dependencia |
npm install -D <paquete> | Instalar como devDependency |
npm install -g <paquete> | Instalar globalmente |
npm uninstall <paquete> | Desinstalar paquete |
npm update | Actualizar paquetes |
npx <paquete> | Ejecutar paquete sin instalar |
npm run <script> | Ejecutar script definido |
✅ Conclusión
package.json es el corazón de tu proyecto Node.js
NPM te permite instalar y gestionar paquetes
node_modules se puede regenerar con
npm installNo compartas la carpeta node_modules, solo el package.json
Usa npx para ejecutar paquetes sin instalación global
¡Ahora ya sabes cómo gestionar dependencias en Node.js!
--------------------------------------
Aquí tienes un resumen en 10 puntos del video "Curso de Node.js [#03 Package.json y NPM]", con timestamps relevantes:
-
Introducción al video (00:00)
Se trata del tercer video del curso de Node.js, centrado enpackage.jsony NPM. Se sugiere ver los videos anteriores para mejor comprensión. -
¿Qué es NPM? (00:20)
NPM (Node Package Manager) permite añadir "superpoderes" a Node.js mediante paquetes desarrollados por otros. -
¿Qué es
package.json? (01:15)
Es un archivo que contiene información del proyecto y un listado de las dependencias (paquetes) usadas, incluyendo sus versiones. -
Creación del archivo
package.json(01:50)
Se genera con el comandonpm init -y, lo que crea el archivo con configuraciones por defecto (nombre, versión, descripción, scripts, etc.). -
Uso de scripts (02:29)
Se pueden definir scripts personalizados, por ejemplo para ejecutar la aplicación connpm run. -
Instalación de paquetes con NPM (05:23)
Se usanpm install <nombre_paquete>o simplementenpm i. También se explican las instalaciones locales y globales. -
Ejemplo práctico con el paquete
cowsay(06:00)
Se instala el paquetecowsay, se requiere en el código (require('cowsay')) y se ejecuta para mostrar un mensaje en forma de vaquita en la consola. -
Dependencias en
package.jsonynode_modules(07:10)
Al instalar un paquete, se añade a la seccióndependenciesy se crea la carpetanode_modulescon el contenido necesario. -
Reinstalar dependencias en otros equipos (09:04)
No se debe compartirnode_modules. Basta con compartir el código fuente y elpackage.json; luego se ejecutanpm installpara regenerar dependencias. -
Instalación global y uso de
npx(10:18–12:08)
-
Instalaciones globales: útiles para herramientas como Vue CLI.
-
npx: ejecuta paquetes sin necesidad de instalarlos globalmente (ejemplo:npx cowsay).
El video concluye invitando a los usuarios a suscribirse y anticipa el siguiente tema: creación de un servidor HTTP en Node.js.
*************************
Ejecutando Código de Node desde el package.json
Miniatura de la clase
1:11 / 8:03
En este vídeo estaremos viendo cómo mandar llamar y ejecutar el código de Node.js.
Paso 1: Crear el archivo principal
Siempre tienes que tener un archivo principal. Este archivo se va a encargar de llamar todos los demás archivos de tu aplicación.
Vamos a crear aquí un archivo nuevo. Este archivo lo puedes nombrar como desees:
| Nombre común | ¿Es válido? |
|---|---|
app.js | ✅ Sí |
index.js | ✅ Sí |
main.js | ✅ Sí |
node.js | ✅ Sí |
| nombre del proyecto | ✅ Sí |
A diferencia de HTML (donde el archivo principal se llama
index.html), en Node.js no es obligatorio un nombre específico.
En mi caso lo voy a nombrar como index.js (más que nada para mantener la costumbre).
Paso 2: Escribir código de prueba
Aquí voy a colocar un console.log que va a decir "Hola mundo":
// index.js
console.log("Hola mundo")Recuerda que el punto y coma es opcional en JavaScript y en Node.js. No es obligatorio.
Paso 3: Configurar el script en package.json
¿Cómo lo mandas a llamar? Lo vas a mandar llamar por medio del package.json. En la sección de scripts puedes colocar el nombre de un script y el comando que se va a ejecutar.
Vas a ponerle aquí el nombre start:
{
"scripts": {
"start": "node index.js"
}
}Explicación del comando:
node→ comando global para ejecutar código Node.jsindex.js→ el archivo que queremos ejecutarPuedes usar
./index.jso soloindex.js(ambos funcionan)
Es muy importante que recuerdes que
nodees el que nos permite interactuar con los archivos de nuestro proyecto.
Paso 4: Ejecutar el script
Para mandar llamar a este script, vas a colocar en la terminal:
npm run startPuedes ver que aparece: "Hola mundo"
Atajo especial para start
El script start es especial. También puedes ejecutarlo sin run:
npm startAmbos comandos dan el mismo resultado.
Paso 5: Probando cambios
Supongamos que tengo otra suma:
// index.js
console.log(2 + 2) // muestra 4Si cambio a:
console.log(2 + 3) // muestra 5Tengo que guardar cambios y volver a llamar npm start para ver el nuevo resultado.
¿Cómo le hacemos para no tener que estar reiniciando manualmente?
Paso 6: Instalar nodemon (dependencia de desarrollo)
Nodemon es una dependencia que es muy útil cuando estás desarrollando un proyecto, porque va a reiniciar el servidor automáticamente con los nuevos cambios.
Vamos a instalarlo como dependencia de desarrollo:
npm i -D nodemonAbrimos el package.json y podemos ver que ya tenemos:
{
"dependencies": {
"express": "^4.18.0"
},
"devDependencies": {
"nodemon": "^3.0.0"
}
}Paso 7: Crear script con nodemon
Podemos poner una coma y crear un segundo script:
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
}
}Diferencia clave:
node→ ejecuta y finalizanodemon→ se queda esperando cambios y reinicia automáticamente
Paso 8: Ejecutar el script dev
npm run devPuedes ver que aparece una línea verde que dice: "waiting for changes before restarting"
Ventaja:
Si yo elimino esta línea y guardo cambios:
// Cambio en index.js
console.log(2 + 5)Automáticamente reinicia el servidor y me muestra los últimos cambios.
Resumen de scripts útiles
| Script | Comando | Uso |
|---|---|---|
start | node index.js | Ejecución normal (producción) |
dev | nodemon index.js | Desarrollo con auto-reinicio |
Beneficio principal de nodemon
No tenemos que:
Abrir la terminal cada vez
Mandar llamar
nodeVerificar los cambios manualmente
Automáticamente va a reiniciar todo por nosotros.
¿Qué sigue?
Tenemos Express instalado. En el próximo vídeo veremos:
Cómo crear ya nuestro proyecto de Express
Cómo montar el servidor
¡Continuamos en el próximo vídeo!
7. Nodemon para Desarrollo
Instalación:
bash
npm install --save-dev nodemon
Configurar en package.json:
json
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
Uso:
bash
npm run dev # Recarga automática al guardar cambios
Comentarios
Publicar un comentario