Gestión de proyectos Node.js con npm y package.json: scripts, dependencias, semver, lockfiles, workspaces, publicación y riesgos de la cadena de suministro.
package.json → rango permitido
lockfile → versión y árbol resueltos
registry → artefactos publicados
npm install puede actualizar la resolución según rangos y estado del proyecto. npm ci exige un lockfile consistente, elimina la instalación existente y reproduce el árbol fijado; es apropiado para CI.
Un lockfile mejora reproducibilidad, pero no reemplaza verificación de integridad, revisiones ni una política de actualizaciones.
Paquetes pueden ejecutar scripts durante instalación. Una cuenta comprometida, una transferencia de nombre o una dependencia maliciosa pueden afectar el proyecto.
Revisa paquetes nuevos y cambios de lockfile.
Reduce dependencias innecesarias.
Fija una política de actualización.
Ejecuta CI con permisos mínimos.
No interpretes npm audit como garantía de seguridad.
Evítala cuando el problema se resuelve de forma pequeña y estable con Node, cuando el paquete está abandonado, cuando amplía demasiado la superficie de ataque o cuando oculta un comportamiento que necesitas comprender.