删除'package-lock.json'以快速解决冲突
在团队设置中,通常,我遇到了合并冲突,我的快速解决方法始终是删除文件并使用重新生成它。我没有认真考虑过此修复的含义,因为它以前没有引起任何可感知的问题。package-lock.json
npm install
删除文件并以这种方式重新创建它而不是手动解决冲突是否存在问题?npm
在团队设置中,通常,我遇到了合并冲突,我的快速解决方法始终是删除文件并使用重新生成它。我没有认真考虑过此修复的含义,因为它以前没有引起任何可感知的问题。package-lock.json
npm install
删除文件并以这种方式重新创建它而不是手动解决冲突是否存在问题?npm
是的,它可以而且会以非常糟糕的方式影响所有项目。
如果你的团队没有在每个之后运行,你们都使用不同的依赖项版本。所以它以“但它对我有用!”和“我不明白为什么我的代码不适合你”结束。npm install
git pull
即使所有团队都在运行,这并不意味着一切都很好。在某些时候,您可能会发现您的项目行为不同。在你多年来没有改变的部分。在(可能,非常痛苦的)调试之后,你会发现这是因为3rd级依赖项已经更新为下一个主要版本,这导致了一些重大更改。npm install
结论:永远不要删除。package-lock.json
是的,对于第一级依赖项,如果我们指定它们而不使用范围(如),则每次运行时都会获得相同的版本。但是对于2+级深度的依赖关系(我们的依赖关系所依赖的依赖关系),我们不能说同样的话,因此对于稳定性非常重要。"react": "16.12.0"
npm install
package-lock.json
在你的情况下,你最好做下一步:
package.json
npm install
就像它看起来一样简单。与 yarn 相同 - 它自行修复锁定文件冲突。这里唯一的要求是事先解决所有冲突(如果有的话)。package.json
每个文档 npm 将为您修复合并冲突。package-lock.json
[从2021年开始更新]重要!如果你已经使用了一些库,并且其维护者的npm / GitHub帐户被黑客入侵。并发布了包含恶意代码的新版本。而且你完好无损。你会没事的。如果你放下它,你就有麻烦了。package-lock.json
是的,它可能会产生不良的副作用,也许不经常,但例如,您可以在package.json中具有,而您曾经在."moduleX": "^1.0.0"
"moduleX": "1.0.0"
package-lock.json
通过删除和运行,您可以在不知情的情况下更新到moduleX的1.0.999版本,并且可能他们创建了一个错误或进行了向后的重大更改(不遵循语义版本控制)。package-lock.json
npm install
无论如何,已经有一个标准的解决方案。
package.json
npm install --package-lock-only
查看此链接以获取更多信息:
https://docs.npmjs.com/cli/v6/configuring-npm/package-locks#resolving-lockfile-conflicts