JavaScript · Sección 7

Módulos, npm, pruebas y seguridad

Organización por módulos ES, dependencias con npm, pruebas automatizadas, formato, análisis estático, secretos y límites de confianza.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas funciones y objetos. No hace falta experiencia previa con npm, pruebas ni herramientas de construcción.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Módulos ES con npm y calidad y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Utiliza un navegador con herramientas de desarrollo y una versión LTS de Node.js con npm. Angular y MongoDB se preparan cuando llegues a esos bloques.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Módulos ES y npm y calidad? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Organizarás proyectos con módulos ES, dependencias reproducibles, pruebas y controles de seguridad básicos.

Al terminar podrás
  • import y export hacen visibles las dependencias
  • package.json declara intención; el lockfile fija la resolución
  • Una entrega necesita pruebas, validación y límites
01
Módulos ES

import y export hacen visibles las dependencias

Cada módulo tiene su propio alcance y declara qué publica. Los imports estáticos permiten analizar dependencias; import() carga de forma dinámica cuando realmente se necesita. En el navegador, las rutas relativas incluyen normalmente la extensión; en Node.js la resolución depende del tipo de módulo y package.json.

01

Evita estado global compartido.

02

Prefiere exports nombrados para APIs con varias piezas.

03

Separa módulos por responsabilidad, no por tamaño arbitrario.

Comprueba lo aprendido · 01

¿Qué problema resuelve el alcance propio de cada módulo?

Mostrar respuesta +

Evita colisiones accidentales en el espacio global y vuelve explícito qué símbolos entran y salen de cada archivo.

02
npm y reproducibilidad

package.json declara intención; el lockfile fija la resolución

npm administra scripts y dependencias. package.json expresa rangos y comandos; package-lock.json registra el árbol resuelto para instalaciones repetibles. Una dependencia añade código, actualizaciones y riesgo: se evalúa necesidad, mantenimiento, licencia y superficie antes de incorporarla.

01

No edites node_modules manualmente.

02

No publiques secretos en .env ni en el historial.

03

Usa scripts para que el equipo ejecute la misma tarea.

Comprueba lo aprendido · 02

¿Por qué conviene versionar package-lock.json en una aplicación?

Mostrar respuesta +

Porque conserva las versiones exactas resueltas y reduce diferencias entre instalaciones, pruebas y despliegues.

03
Pruebas y seguridad

Una entrega necesita pruebas, validación y límites

Las pruebas unitarias cubren reglas puras; las de integración comprueban límites entre módulos; las de extremo a extremo recorren una función visible. Todo dato externo se valida. En el DOM se prefiere textContent para texto; innerHTML con entrada no confiable puede habilitar XSS.

01

Prueba comportamiento y casos frontera.

02

Mantén dependencias actualizadas con revisión.

03

Nunca confíes en validación solo del navegador.

Comprueba lo aprendido · 03

¿Por qué una prueba que pasa no demuestra que la entrada sea segura?

Mostrar respuesta +

Porque seguridad exige modelar entradas hostiles y validar en cada límite confiable. Una prueba solo cubre los casos que realmente ejecuta.

Resumen de la sección

Tu recorrido en tres ideas

  1. import y export hacen visibles las dependencias
  2. package.json declara intención; el lockfile fija la resolución
  3. Una entrega necesita pruebas, validación y límites
PROFUNDIZACIÓN / LABORATORIO GUIADO

Entrega una biblioteca pequeña y segura

Une módulos, npm, pruebas, entrada no confiable y documentación para convertir scripts sueltos en un proyecto reproducible.

CASO

Una calculadora de gastos creció en un archivo global y ahora distintas personas obtienen resultados diferentes.

Procedimiento

  1. Separa dominio, validación y presentación mediante módulos ES.
  2. Define scripts, lockfile y pruebas de casos normales, fronteras y entrada hostil.
  3. Ejecuta desde una instalación limpia y documenta decisiones y versiones.

Evidencia mínima

  • Grafo de imports sin ciclos accidentales.
  • Pruebas que fallan antes de corregir.
  • Instalación y ejecución repetibles sin secretos.
Mostrar razonamiento modelo +

La lógica pura no conoce DOM ni consola. La validación vive en el límite; la presentación usa textContent. package.json y el lockfile permiten repetir el entorno y npm test ofrece una comprobación única.

Para ir más lejos

¿Qué parte convertirías en un paquete reutilizable y qué API pública conservarías?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Agregar dependencias sin evaluar mantenimiento, licencia o superficie.

ERROR 02

Insertar entrada externa con innerHTML y confiar solo en una prueba feliz.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Divide una calculadora de presupuesto en módulos, crea pruebas con node:test y documenta scripts reproducibles.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Las dependencias entre archivos son explícitas.
  • Prueba vacío, límites y errores.
  • No hay secretos ni HTML no confiable interpretado.