Objetivo del tema
Pon en práctica los conceptos aprendidos construyendo proyectos pequeños con npm: levantar una API con Express, automatizar tareas con scripts, publicar una utilidad, coordinar dependencias en equipos y organizar módulos en workspaces.
Este ejercicio crea una API básica con Express y configura scripts para iniciarla rápidamente.
mkdir api-basica
cd api-basica
npm init -y
npm install express
// src/index.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.json({ mensaje: 'Hola desde Express y npm' });
});
app.listen(3000, () => {
console.log('Servidor escuchando en http://localhost:3000');
});
Actualiza package.json
para usar node src/index.js
en el script start
y ejecuta npm start
para probar.
Añade herramientas como nodemon para recarga automática y Jest para pruebas. Instálalas como dependencias de desarrollo.
npm install --save-dev nodemon jest
{
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js",
"test": "jest",
"lint": "eslint src"
}
}
Ejecuta npm run dev
para desarrollar con recarga automática y npm test
para validar la lógica. Ajusta la configuración de Jest según tus necesidades.
Crea una función reutilizable (por ejemplo, formatear fechas) y publícala siguiendo el flujo del tema 8. Asegúrate de incluir pruebas y un README con ejemplos.
mkdir utilidad-fechas
cd utilidad-fechas
npm init -y
# Implementa la utilidad en index.js y escribe tests
npm login
npm publish --access public
Opcional: usa scopes privados (por ejemplo @tuusuario/utilidad-fechas
) si necesitas agrupar paquetes relacionados.
Simula el flujo de trabajo de un equipo controlando versiones y evitando conflictos:
npm test
y npm audit
antes de subir cambios.package.json
y package-lock.json
en el repositorio y evita editar el lock manualmente.npm install --omit=dev
para preparar despliegues.npm ci
para instalaciones reproducibles y cachea ~/.npm
para optimizar tiempos.Documenta el proceso en el README del proyecto: comandos obligatorios, scripts disponibles y políticas de actualización.
Organiza un monorepo con workspaces para compartir utilidades entre una API y un front-end.
mkdir plataforma
cd plataforma
npm init -y
mkdir -p packages/api packages/web packages/shared
{
"private": true,
"workspaces": [
"packages/api",
"packages/web",
"packages/shared"
]
}
En cada paquete crea su propio package.json
y declara dependencias locales con "packages/shared": "workspace:*"
. Ejecuta npm install
en la raíz para generar enlaces simbólicos y comparte scripts globales como npm run build --workspaces
.
Los ejercicios propuestos consolidan tus habilidades con npm: crear aplicaciones, automatizar procesos, publicar artefactos, colaborar de forma segura y escalar proyectos modularmente. Practícalos y ajusta los ejemplos a tus necesidades reales.