Удаление `package-lock.json` для быстрого разрешения конфликтов - PullRequest
0 голосов
/ 10 января 2019

Обычно в команде, с которой я настроен, я сталкивался с конфликтами слияния в package-lock.json, и моим быстрым решением было удалить файл и восстановить его с помощью npm install. Я не задумывался всерьез о значении этого исправления, потому что раньше оно не вызывало какой-либо ощутимой проблемы.

Есть ли проблема с удалением файла и с npm воссозданием его таким образом вместо разрешения конфликтов вручную?

1 Ответ

0 голосов
/ 10 января 2019

Да, это может и повлияет на весь проект очень плохо.

  1. если ваша команда не запускает npm install после каждого git pull, вы все используете разные версии зависимостей. Так что это заканчивается "но это работает для меня!" и «я не понимаю, почему мой код не работает для вас»

  2. даже если вся команда бежит npm install это еще не значит, что все в порядке. в какой-то момент вы можете обнаружить, что ваш проект действует иначе в части, которую вы не меняли годами. и после (возможно, довольно болезненной) отладки вы обнаружите, что это связано с обновлением зависимости 3-го уровня для следующей основной версии, что привело к серьезным изменениям.

Вывод: никогда не удаляйте package-lock.json. в вашем случае лучше поступить следующим образом:

Подход 1

  1. отменить изменения в package-lock.json
  2. stash ваши изменения
  3. pull последняя версия кода
  4. запустить npm install для всех зависимостей, которые нужно добавить
  5. снять ваши изменения

Подход 2

  1. запустить слияние
  2. для разрешения конфликта выберите стратегию «только их изменения» на package-lock.json
  3. run npm install, поэтому зависимости, которые вы хотите добавить, также включены в package-lock.json
  4. закончить коммитом коммит
...