Comment gérer les dépendances npm sans devenir fou ?

Je travaille sur un projet React assez gros et à chaque fois que j'installe un nouveau package, je me retrouve avec des conflits de versions complètement dingues. J'ai essayé d'utiliser npm ci mais ça ne marche pas toujours, surtout quand je collabore avec d'autres. Y a un moyen plus malin pour gérer ça sans tout refaire de zéro ?

1 réponses

Quand tu as ces conflits, c'est généralement ce qui se passe quand tu installes de nouveaux packages avec `npm install` sans vérifier ce que ça fait au `package-lock.json`, non?

Le problème, c'est qu'npm est un peu trop flexible par défaut. D'abord, assure-toi que tout le monde dans l'équipe utilise `npm ci` à la place de `npm install` quand vous travaillez sur un projet déjà lancé. La différence, c'est que `npm ci` lit exactement ce qu'il y a dans `package-lock.json` sans le modifier, alors que `install` se met à faire des upgrades de patch et de version mineure quand ça lui plaît. Si tu utilises `npm install` pour ajouter des trucs nouveaux et que vous pushez le lock file, les autres se retrouvent avec des versions différentes. De plus, committe toujours le `package-lock.json` dans le repository - ça semble évident mais beaucoup ne le font pas et après se demandent pourquoi le build échoue.

Pour les nouveaux packages, utilise `npm install --save-exact` si tu veux vraiment figer une version spécifique, ou jette un œil à des outils comme `npm audit` pour vérifier s'il y a des conflits de dépendances connus. Si le problème est vraiment grave avec plein de dépendances imbriquées, pense aussi à utiliser `npm dedupe` de temps en temps pour nettoyer l'arbre des dépendances. En vrai, tu pourrais aussi essayer pnpm ou yarn si tu es prête à changer d'écosystème - ils gèrent les dépendances de façon plus ordonnée - mais si tu veux rester avec npm, respecter le flux `ci` + `package-lock.json` dans git devrait résoudre la plupart des problèmes.

Votre réponse

Se connecterpour répondre.