Objetivo del tema
Revisarás pautas para mantener proyectos saludables al trabajar con npm: incluir archivos correctos en tu repositorio, separar dependencias de desarrollo, elegir la estrategia adecuada al compartir proyectos y reforzar la seguridad mediante auditorías periódicas.
El directorio node_modules/
contiene todas las dependencias instaladas y puede ocupar cientos de megabytes. No debería versionarse porque npm puede reconstruirlo a partir de package.json
y package-lock.json
. Incluye una entrada en .gitignore
para evitarlo.
# .gitignore
node_modules/
.env
coverage/
Puedes generar un .gitignore base con la herramienta gitignore de GitHub. Asegúrate de mantener el lockfile dentro del control de versiones para garantizar instalaciones reproducibles.
Las dependencias de desarrollo son herramientas utilizadas durante la construcción o pruebas del proyecto pero no necesarias en producción. Instálalas con --save-dev
para que queden clasificadas correctamente.
npm install --save-dev eslint nodemon
npm install --omit=dev
.Al clonar un repositorio existen dos comandos principales para instalar dependencias:
npm install
: resuelve rangos de versiones según package.json
y actualiza el lock si encuentra diferencias.npm ci
: instala exactamente las versiones listadas en package-lock.json
y falla si el lock no coincide. Es ideal para entornos reproducibles como CI/CD.# Entorno local durante el desarrollo
npm install
# Integraciones continuas o despliegues
npm ci
Utiliza npm ci
cuando necesites predictibilidad total o quieras detectar divergencias entre el lock y el manifiesto. Recuerda ejecutar npm install
localmente cada vez que incorpores una nueva dependencia para mantener el lock actualizado.
npm integra una base de datos de vulnerabilidades que puedes consultar con npm audit. Este comando analiza las dependencias declaradas en el lock e informa riesgos conocidos.
npm audit
npm audit fix
npm audit fix --force
npm audit
produce un reporte con la severidad y la versión recomendada para cada paquete.npm audit fix
intenta aplicar actualizaciones seguras basadas en SemVer.--force
solo si comprendes los impactos, ya que puede instalar versiones mayores incompatibles.Integra auditorías periódicas en tu pipeline y documenta las decisiones cuando postergues una actualización por motivos de compatibilidad.
Mantener node_modules/
fuera del repositorio, clasificar dependencias, elegir la estrategia de instalación apropiada y auditar el proyecto con regularidad mejora la calidad y seguridad de tus aplicaciones. Estas prácticas complementan la gestión técnica de npm y fortalecen la colaboración dentro del equipo.