¿Cómo gestionar las dependencias de npm sin volverse loco?

Estoy trabajando en un proyecto React bastante grande y cada vez que instalo un nuevo paquete me encuentro con conflictos de versiones absurdos. Intenté usar npm ci pero no siempre funciona, especialmente cuando colaboro con otros. ¿Hay alguna forma más inteligente de manejar esta situación sin tener que rehacer todo desde cero?

1 respuestas

Cuando tienes estos conflictos, generalmente pasa cuando instalas paquetes nuevos con `npm install` sin revisar qué hace con `package-lock.json`, ¿verdad?

El problema es que npm es demasiado flexible por defecto. Lo primero, asegúrate de que todos en el equipo usen `npm ci` en lugar de `npm install` cuando trabajen en un proyecto ya iniciado. La diferencia es que `npm ci` lee exactamente lo que hay en `package-lock.json` sin modificarlo, mientras que `install` se pone a hacer upgrades de versiones patch y minor cuando le da la gana. Si usas `npm install` para añadir cosas nuevas y luego pusheáis el lock file, los otros se encuentran versiones diferentes. Además, siempre commitea el `package-lock.json` en el repositorio - suena obvio pero muchos no lo hacen y después se preguntan por qué el build falla.

Para los paquetes nuevos, usa `npm install --save-exact` si quieres realmente congelar una versión específica, o echa un vistazo a herramientas como `npm audit` para verificar si hay conflictos de dependencias conocidos. Si el problema es muy grave con un montón de dependencias anidadas, considera también usar `npm dedupe` de vez en cuando para limpiar el árbol de dependencias. En realidad, podrías probar pnpm o yarn si estás dispuesto a cambiar de ecosistema - gestionan las dependencias de manera más ordenada - pero si quieres quedarte con npm, respetar el flujo `ci` + `package-lock.json` en git debería resolver la mayoría de los líos.

Tu respuesta

Iniciar sesiónpara responder.