GUÍA COMPLETA DE COMANDOS NPM Y GESTIÓN CON NVM ACTUALIZADA
Introducción a npm y su importancia en el desarrollo actual
En el ecosistema de Node.js, npm representa el gestor de paquetes predeterminado y una herramienta fundamental para cualquier desarrollador que trabaje con JavaScript en el lado del servidor o en aplicaciones frontend avanzadas. Este gestor permite instalar, compartir y administrar dependencias de manera eficiente, facilitando la reutilización de código y la colaboración en proyectos de gran escala.
Con el paso de los años, npm ha evolucionado significativamente, incorporando mejoras en rendimiento, seguridad y funcionalidades que lo mantienen como la opción principal en 2026. Actualmente, la versión estable de Node.js se encuentra en la rama 24.x como LTS activa, mientras que la rama 25.x representa la versión Current con las últimas características experimentales. Entender los comandos básicos y avanzados de npm es esencial para optimizar flujos de trabajo y evitar problemas comunes en el desarrollo diario.
Esta guía detalla los comandos más utilizados, explicando su propósito, opciones comunes y mejores prácticas, todo actualizado a las recomendaciones vigentes en enero de 2026.
Inicialización de un nuevo proyecto con npm
El primer paso en cualquier proyecto Node.js suele ser la creación del archivo package.json, que actúa como manifiesto del proyecto y registra las dependencias, scripts y metadatos.
Para inicializar un nuevo proyecto, se ejecuta el siguiente comando:
npm init
Este comando lanza un asistente interactivo que pregunta por detalles como el nombre del paquete, versión, descripción, punto de entrada y autor. Para aceptar los valores predeterminados de forma rápida, se utiliza:
npm init -y
o su equivalente:
npm init --yes
El resultado es un archivo package.json básico listo para agregar dependencias. En proyectos modernos, este archivo es crucial porque herramientas como bundlers y frameworks lo utilizan para configurar entornos.
Ejemplo de package.json generado:
{
"name": "mi-proyecto",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
Instalación de dependencias y paquetes
Uno de los comandos más frecuentes es la instalación de paquetes. Para instalar todas las dependencias listadas en package.json:
npm install
o su forma abreviada:
npm i
Para instalar un paquete específico como dependencia de producción:
npm install <nombre-paquete>
Por ejemplo:
npm install express
Esto agrega el paquete a la sección “dependencies” en package.json y lo instala en node_modules.
Si el paquete es solo para desarrollo, como herramientas de testing o linting:
npm install --save-dev <nombre-paquete>
o abreviado:
npm i -D jest
En versiones recientes de npm, las flags –save y –save-dev son opcionales para dependencias locales, ya que se agregan automáticamente.
Para instalaciones globales, útiles en herramientas de línea de comandos:
npm install -g <nombre-paquete>
Ejemplo común:
npm install -g create-vite
Instalación de dependencias de producción es una práctica recomendada en entornos de despliegue para reducir el tamaño del proyecto.
Desinstalación y actualización de paquetes
Para remover un paquete no necesario:
npm uninstall <nombre-paquete>
o abreviado:
npm un <nombre-paquete>
Esto elimina el paquete de node_modules y actualiza package.json соответственно.
Para paquetes globales:
npm uninstall -g <nombre-paquete>
La actualización de paquetes locales se realiza con:
npm update <nombre-paquete>
o abreviado:
npm up <nombre-paquete>
Sin especificar paquete, actualiza todas las dependencias según las restricciones de versión en package.json.
Para verificar paquetes desactualizados:
npm outdated
Este comando muestra una tabla con versiones actuales, deseadas y últimas disponibles.
En entornos globales:
npm outdated -g --depth=0
Y para actualizar globales individualmente:
npm update -g <nombre-paquete>
Listado y visualización de paquetes instalados
Para listar paquetes locales con una estructura jerárquica limitada:
npm list --depth=0
o simplemente:
npm ls
Para paquetes globales:
npm list -g --depth=0
Esto proporciona una vista limpia sin dependencias anidadas profundas, ideal para revisiones rápidas.
Ejemplo de salida típica:
[email protected] /ruta/al/proyecto
├── [email protected]
└── [email protected]
Ejecución de scripts definidos en package.json
Los scripts personalizados son una característica poderosa de npm. Para ver los scripts disponibles:
npm run
Esto lista todos los definidos en la sección “scripts”.
Para ejecutar uno específico:
npm run <nombre-script>
Por ejemplo, en muchos proyectos:
npm run dev
npm run build
npm run test
Estos scripts permiten automatizar tareas como compilación, testing y despliegue.
Ejemplo de sección scripts:
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"lint": "eslint ."
}
Actualización de npm a la versión más reciente
Mantener npm actualizado asegura acceso a mejoras de seguridad y rendimiento. Para actualizar globalmente:
npm install -g npm@latest
En sistemas Windows, se recomienda usar una herramienta específica si surgen problemas de permisos:
npx npm-windows-upgrade
Verificar la versión actual:
npm -v
En 2026, la versión de npm supera la 10.x, con optimizaciones significativas en velocidad de instalación gracias a avances en el motor.
Introducción a Node Version Manager (nvm)
Gestionar múltiples versiones de Node.js en un mismo equipo es común en desarrollo profesional. Node Version Manager (nvm) es la solución más popular para sistemas Unix-like (macOS y Linux), permitiendo instalar y alternar versiones sin conflictos.
Para Windows, existe nvm-windows como alternativa compatible.
Una vez instalado nvm, los comandos básicos incluyen:
Instalar una versión específica:
nvm install 24
Esto instala la última versión de la rama 24.x (actual LTS en enero 2026).
Para la versión Current:
nvm install 25
o la más reciente absoluta:
nvm install node
Gestión de versiones múltiples facilita probar compatibilidad en proyectos legacy y modernos simultáneamente.
Cambio y uso de versiones de Node con nvm
Para alternar a una versión instalada:
nvm use 24.13.0
o simplemente:
nvm use 24
Para listar versiones instaladas:
nvm ls
Y versiones disponibles remotas:
nvm ls-remote
Filtrando por LTS:
nvm ls-remote --lts
Establecer una versión predeterminada:
nvm alias default 24
Esto asegura que nuevos terminales usen esa versión automáticamente.
Actualización de npm en entornos gestionados por nvm
Cuando se usa nvm, cada versión de Node trae su propia versión de npm. Para actualizar npm en la versión activa:
npm install -g npm@latest
Alternativamente, un comando útil:
nvm install-latest-npm
Esto actualiza npm solo para la versión de Node actualmente en uso.
Mejores prácticas en la gestión de versiones
En equipos de desarrollo, es recomendable especificar la versión de Node en un archivo .nvmrc en la raíz del proyecto:
echo "24" > .nvmrc
Luego, al entrar al directorio:
nvm use
nvm lee automáticamente el archivo y cambia a la versión indicada.
Esto garantiza consistencia entre desarrolladores y entornos CI/CD.
Ejemplo de estructura de proyecto con .nvmrc:
mi-proyecto/
├── .nvmrc
├── package.json
├── node_modules/
└── src/
Alternar versiones de Node de manera rápida mejora la productividad y reduce errores de compatibilidad.
Comandos avanzados y flags útiles en npm
Aunque los comandos básicos cubren la mayoría de casos, flags adicionales optimizan operaciones.
Instalación solo de producción:
npm ci
Ideal para despliegues, ya que usa package-lock.json estrictamente y es más rápido.
Auditoría de seguridad:
npm audit
Identifica vulnerabilidades en dependencias y sugiere fixes:
npm audit fix
Publicación de paquetes propios:
npm login
npm publish
Para paquetes privados o scoped.
Uso de npx para ejecución temporal:
npx create-react-app mi-app
Ejecuta paquetes sin instalación global.
Consideraciones de rendimiento y seguridad en 2026
Con las versiones recientes de Node y npm, el enfoque en seguridad es prioritario. Se recomienda siempre usar package-lock.json o yarn.lock/pnpm-lock.yaml para reproducibilidad.
Evitar instalaciones globales innecesarias reduce riesgos y conflictos.
Monitorear actualizaciones de seguridad mediante:
npm outdated
npm audit
Y aplicar parches oportunamente.
Optimización de instalaciones npm ha mejorado notablemente con caching inteligente y parallelismo.
Conclusiones
Dominar los comandos de npm y el uso de nvm constituye una habilidad esencial para cualquier desarrollador trabajando con Node.js en 2026. Estas herramientas no solo agilizan la gestión de dependencias y versiones, sino que también contribuyen a mantener proyectos seguros, reproducibles y eficientes.
Al aplicar las prácticas descritas, desde la inicialización de proyectos hasta la alternancia fluida entre versiones de Node, se logra un flujo de trabajo profesional y adaptable a las demandas actuales del desarrollo web y de aplicaciones JavaScript.
La evolución constante de npm y Node.js asegura que invertir tiempo en su comprensión rinda beneficios duraderos en productividad y calidad de código. Recomendamos experimentar con estos comandos en proyectos reales para internalizar su uso óptimo.