一尘不染

删除`package-lock.json`以快速解决冲突

node.js

通常,在建立团队的过程中,我遇到了合并冲突,package-lock.json而我的快速解决方案一直是删除文件并使用重新生成文件npm install。我没有认真考虑此修复程序的含义,因为它以前没有引起任何可察觉的问题。

删除文件并以npm这种方式重新创建而不是手动解决冲突是否存在问题?


阅读 5408

收藏
2020-07-07

共1个答案

一尘不染

是的,它可能并且将以非常糟糕的方式影响所有项目。

  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. 运行,npm install以便您要添加的依赖项也包含在其中package-lock.json
  4. 完成合并合并提交。

PS是的,对于第一级依赖关系,如果我们指定它们不带范围(例如"react": "16.12.0"),则每次运行时都会得到相同的版本npm install。但是对于2级以上级别的依赖关系(我们的依赖关系所依赖的依赖关系),我们不能说相同的话,因此package- lock.json对于稳定性而言确实很重要。

2020-07-07