我知道您应该将package-lock.json添加到git中,以确保团队成员使用相同版本的依赖项。
运行package-lock.json将检查是否有npm install,并安装这里指示的版本。如果不存在锁文件,它将按照package.json的指示从它们的源安装包。
那么,应该将package.json添加到您的git回购中吗?
如果不是,克隆回购的新团队成员将获得锁文件,但不能从锁文件生成package.json文件,对吗?
附加问题:如何处理package-lock.json?中的合并冲突由于它们是机器生成的,我发现这种情况经常发生,而且并不总是清楚应该如何解决这些问题。
发布于 2019-04-15 18:36:45
是的,package.json也应该包括在内。除了包含项目元数据和npm所要求的之外,它还提供了显式依赖关系的简洁的视图。
关于冲突,最好的选择可能是完全使用其中之一(而不是试图合并)。或者从头开始重新创造。在项目的早期阶段,在添加所有主要依赖项时,您可能会遇到许多冲突。
发布于 2019-08-02 21:11:47
要回答你的奖金问题:
有一种方法可以教Git自动“合并”package-lock.json文件,使用合并驱动程序和.gitattributes文件。
TL;DR
在每台开发人员机器上运行一次:
git config --global merge.theirs.name "Keep changes of upstream branch"
git config --global merge.theirs.driver "cp -f '%B' '%A'"将以下.gitattributes文件添加到您的repo中(并提交):
package-lock.json merge=theirs有关更详细的解释,请参见我的博客文章。
https://stackoverflow.com/questions/55695122
复制相似问题