- ¿Qué es la biblioteca estándar?
- ¿Cómo instalamos paquetes con npm?
- ¿Qué hacen package.json y package-lock.json?
- node_modules y Git
Cuando trabajamos en proyectos reales con JavaScript, no todo lo podemos hacer solo con las funciones que ya vienen incluidas. A veces necesitamos herramientas extra. Por suerte, existe una gran comunidad que comparte soluciones reutilizables, conocidas como paquetes de terceros.
¿Qué es la biblioteca estándar?
Veamos algunos ejemplos:
// Redondear un número
Math.round(5.34); // Devuelve 5
Eso funciona tanto en el navegador como en Node.js. Pero Node.js (que usamos para ejecutar JavaScript en el servidor o en la terminal) incluye muchos más módulos útiles.
Por ejemplo:
// Usar el módulo 'fs' para leer archivos en Node.js
import fs from "fs";
// Leer el contenido de un archivo
const data = fs.readFileSync("ruta/del/archivo.txt"); // Lee el archivo completo.
console.log(data.toString()); // Mostramos el contenido
En resumen:
| Entorno | ¿Qué incluye? |
|---|---|
| Navegador | Funciones básicas (Math, Date, JSON, etc.) |
| Node.js | Módulos extra como fs (archivos), http (red), etc. |
Sin embargo, la biblioteca estándar tiene sus límites. Entonces...
¿Por qué usar paquetes de terceros?
A veces necesitamos hacer cosas más complejas: trabajar con fechas, convertir textos, manipular arrays, enviar correos, crear PDFs… Y no queremos escribir todo desde cero.
Ejemplos de paquetes útiles
| Paquete | ¿Para qué sirve? |
|---|---|
| date-fns | Manejar fechas en JavaScript |
| lodash | Manipular arrays, objetos y cadenas fácilmente |
Veamos lodash en acción:
import _ from "lodash";
// Encontrar elementos comunes entre dos arreglos
console.log(_.intersection([1, 2, 3], [2, 3, 4])); // [2, 3]
// Capitalizar textos
console.log(_.capitalize("colombia")); // Colombia
💡 Una nota clave: cuando importamos paquetes así:
import _ from "lodash";
No usamos ./, porque el paquete está en una carpeta especial llamada node_modules/.
Si pusiéramos esto, estaríamos buscando un archivo llamado lodash.js en nuestra carpeta, lo cual no es lo correcto.
import _ from "./lodash.js"; // Incorrecto
¿Cómo instalamos paquetes con npm?
Si escribimos código que usa lodash sin instalarlo, veremos un error como este:
Error: Cannot find module 'lodash'
Pasos para instalar un paquete
Desde la terminal, en la carpeta del proyecto:
npm install lodash
Esto hace varias cosas:
- Descarga el paquete y lo guarda en
node_modules/. - Registra la dependencia en el archivo
package.json. - Crea (o actualiza) el archivo
package-lock.json.
Ahora podemos importar lodash y usarlo sin problemas:
import _ from "lodash";
console.log(_.capitalize("javascript")); // JavaScript
¿Qué hacen package.json y package-lock.json?
Estos dos archivos son responsables de llevar el control de qué paquetes usa el proyecto:
package.json
Es el archivo principal de configuración del proyecto. Allí se guardan las dependencias con sus versiones mínimas necesarias.
Cuando instalas un paquete con npm install, su nombre y versión se agregan automáticamente a package.json.
❓ ¿Por qué es útil?
- Nos asegura que si otra persona instala el proyecto, tendrá exactamente las mismas versiones.
npmusa este archivo cuando ejecutamos:
npm ci
Esto instala exactamente lo que diga el archivo package-lock.json.
node_modules y Git
Cuando usamos Git (por ejemplo, en GitHub), tenemos que tener cuidado con los archivos que subimos.
¿Qué debe ir en Git?
| Archivo o carpeta | ¿Subir a Git? | ¿Por qué? |
|---|---|---|
| node_modules/ | ❌ No | Es muy pesado y se puede regenerar con npm install o npm ci. |
| package.json | ✅ Sí | Define qué paquetes usa el proyecto. |
| package-lock.json | ✅ Sí | Asegura que todos usen las mismas versiones. |
Entonces, en .gitignore debemos asegurarnos de incluir:
node_modules/
Y si clonamos un proyecto de GitHub, antes de ejecutarlo debemos instalar sus dependencias con:
npm ci
## Advertencias al instalar
A veces al instalar paquetes, npm muestra advertencias como esta:
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher...
❓ ¿Es grave? Normalmente no.
Si quieres actualizar los paquetes a las últimas versiones que sean compatibles con tu package.json, puedes ejecutar:
npm update
Resumen
- JavaScript incluye una biblioteca estándar con funciones básicas.
- Podemos ampliar sus capacidades usando paquetes de terceros.
- Instalamos paquetes con el comando
npm install <nombre>. - Los paquetes quedan guardados en la carpeta
node_modules/. package.jsonguarda qué paquetes usamos.package-lock.jsonguarda las versiones exactas de las dependencias.- No debes subir
node_modules/a Git, pero sípackage.jsonypackage-lock.json. - Para instalar todas las dependencias correctamente, se recomienda usar
npm ci. - Las advertencias de
npmno siempre son errores; muchas veces son solo avisos.
Trabajo independiente
Usa una librería externa: lodash
📦 ¿Qué es lodash? Es una librería de utilidades muy usada en JavaScript. Nos permite trabajar con listas, objetos y funciones de forma más cómoda.
1️⃣ Asegúrate de estar en la carpeta del proyecto (codica-js) y ejecuta:
npm install lodash
2️⃣ Abre index.js (o créalo si no existe) y copia este contenido:
import _ from 'lodash'; console.log(_.last(['uno', 'dos']));
💡 Asegúrate de instalar lodash con npm install antes de usar import. Este tipo de instrucciones no funcionan dentro del REPL (la consola interactiva que se abre con node), solo en archivos ejecutados como node index.js.
3️⃣ Ejecuta el archivo con Node.js:
node index.js
👉 Deberías ver en la terminal:
dos
4️⃣ Crea un archivo .gitignore para evitar subir la carpeta node_modules (es muy pesada y no se debe versionar):
echo "node_modules/" > .gitignore
5️⃣ Verifica que node_modules no esté siendo rastreada por Git:
git status
6️⃣ Sube los cambios a GitHub:
git add . git commit -m "Usar lodash e ignorar node_modules" git push origin main
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.