Oui, cela peut et va affecter tout le projet de manière très négative.
-
si votre équipe ne court pas npm install
après chaque git pull
vous utilisez tous des versions différentes des dépendances. Cela se termine donc par "mais ça marche pour moi !" et "je ne comprends pas pourquoi mon code ne fonctionne pas pour vous".
-
même si toute l'équipe court npm install
cela ne signifie pas pour autant que tout va bien. à un moment donné, vous pouvez constater que votre projet se comporte différemment. dans une partie que vous n'avez pas modifiée depuis des années. et après un débogage (probablement assez douloureux), vous découvrirez que c'est parce qu'une dépendance de troisième niveau a été mise à jour pour la prochaine version majeure et que cela a entraîné des changements de rupture.
Conclusion : ne jamais supprimer package-lock.json
.
Oui, pour les dépendances de premier niveau si nous les spécifions sans plages (comme "react": "16.12.0"
) nous obtenons les mêmes versions à chaque fois que nous exécutons npm install
. Mais nous ne pouvons pas en dire autant des dépendances de plus de 2 niveaux de profondeur (dépendances sur lesquelles nos dépendances reposent), donc package-lock.json
est vraiment important pour la stabilité.
Dans votre cas, vous feriez mieux de faire le contraire :
- fixer les conflits dans
package.json
- exécuter
npm install
Aussi facile qu'il y paraît. La même chose pour yarn - il résout les conflits de lockfile tout seul. La seule exigence ici est de résoudre tous les conflits de package.json
au préalable, le cas échéant.
Par docs npm corrigera les conflits de fusion dans package-lock.json
pour vous.
0 votes
Référez-vous à cette réponse - stackoverflow.com/a/44297998/2251411
0 votes
@john-mutuma Puisque npm a une solution beaucoup plus facile que la réponse acceptée, vous devriez peut-être envisager d'accepter cette (ma) solution ci-dessous à la place :-) Pourquoi perdre du temps sur quelque chose qui peut être corrigé pour vous beaucoup plus facilement :-)