Tabla de contenido
- ¿Qué es npm?
- ¿Qué es el package.json?
- Comandos esenciales de npm
- Dependencias vs devDependencies
- Scripts de npm
- La carpeta node_modules y .gitignore
Si has trabajado con JavaScript moderno, seguramente has visto comandos como npm install o npm run dev. npm es una herramienta fundamental en el ecosistema JavaScript y entenderla te abrirá las puertas a trabajar con prácticamente cualquier proyecto frontend o backend moderno.
¿Qué es npm?
npm (Node Package Manager) es el gestor de paquetes oficial de Node.js. Cuando instalas Node.js en tu computadora, npm viene incluido automáticamente.
Su función principal es simple: permite instalar, actualizar y gestionar librerías de terceros (llamadas paquetes o dependencias) en tus proyectos JavaScript. Es el equivalente de Composer para PHP o pip para Python.
Además de gestionar paquetes, npm te permite definir y ejecutar scripts para automatizar tareas como iniciar un servidor de desarrollo, compilar código, correr pruebas, etc.
Puedes verificar si tienes npm instalado con:
node --version
npm --version
Bash
¿Qué es el package.json?
El package.json es el archivo de configuración central de cualquier proyecto que use npm. Guarda información importante del proyecto: su nombre, versión, scripts disponibles y —lo más importante— la lista de todas las dependencias que necesita.
Para crear un package.json desde cero, ejecuta en la carpeta de tu proyecto:
npm init
Bash
Esto te hará una serie de preguntas. Si quieres saltar todo y crear un package.json con valores por defecto:
npm init -y
Bash
Un package.json básico se ve así:
{
"name": "mi-proyecto",
"version": "1.0.0",
"description": "Mi primer proyecto con npm",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^3.0.0"
}
}
Comandos esenciales de npm
Instalar todas las dependencias de un proyecto existente:
npm install
Bash
Este es el primer comando que corres cuando clonas un proyecto. Lee el package.json y descarga todas las dependencias en la carpeta node_modules.
Instalar un paquete nuevo:
npm install express
Bash
Esto descarga el paquete y lo agrega automáticamente a la sección dependencies de tu package.json.
Instalar un paquete solo para desarrollo:
npm install --save-dev nodemon
Bash
Instalar un paquete globalmente (disponible en todo el sistema):
npm install -g create-react-app
Bash
Desinstalar un paquete:
npm uninstall express
Bash
Ver los paquetes instalados:
npm list
Bash
Actualizar todos los paquetes:
npm update
Bash
Dependencias vs devDependencies
Esta distinción es importante cuando despliegas a producción:
dependencies: Son los paquetes que tu aplicación necesita para funcionar en producción. Por ejemplo, si usas Express para crear un servidor, Express es una dependencia de producción.
devDependencies: Son paquetes que solo necesitas durante el desarrollo. Por ejemplo, nodemon (que reinicia el servidor automáticamente al detectar cambios), ESLint (para detectar errores en el código), o Prettier (para formatear código). En producción no los necesitas.
Cuando instalas, la diferencia está en la flag que usas:
npm install express # → dependencies
npm install --save-dev nodemon # → devDependencies
Bash
Scripts de npm
Los scripts de npm te permiten definir comandos personalizados y ejecutarlos con npm run nombre-del-script. Los defines en la sección "scripts" del package.json:
{
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"build": "webpack --mode production",
"test": "jest"
}
}
Para ejecutarlos:
npm run dev
npm run build
npm test # "test" y "start" no necesitan la palabra "run"
npm start
Bash
La carpeta node_modules y .gitignore
Cuando instalas paquetes, npm los descarga en una carpeta llamada node_modules. Esta carpeta puede volverse enorme (miles de archivos, cientos de MB) dependiendo de cuántas dependencias tengas.
Nunca debes subir node_modules a tu repositorio. Agrega esta línea a tu archivo .gitignore:
node_modules/
Cualquier persona que clone tu proyecto puede regenerar la carpeta node_modules simplemente ejecutando npm install, gracias al package.json que sí debes subir.
npm es una de esas herramientas que usarás literalmente todos los días como desarrollador JavaScript. Aprender los comandos básicos y entender cómo funciona el package.json te dará una base sólida para trabajar con cualquier framework moderno como React, Vue, Astro o cualquier otro.