我知道您应该将 package-lock.json 添加到您的git仓库中,以确保团队成员使用相同版本的依赖项。
运行npm install
将检查 package-lock.json 并安装此处指示的版本。如果没有锁定文件,它将按照 package.json 的指示从源安装软件包。
然后也将 package.json 也添加到您的git仓库中吗?
如果没有,那么克隆回购协议的新团队成员将获得锁定文件,但是不能从锁定文件生成 package.json 文件,对吗?
奖金问题: 如何在 package-lock.json 中处理合并冲突?由于它们是机器生成的,因此我发现这种情况经常发生,而且并不总是很清楚应该如何解决。
答案 0 :(得分:1)
是的,还应该包含 package.json 。
除了包含项目元数据并由npm
所要求之外,它还提供了简洁明了的显式依赖关系视图。
关于冲突,最好的选择可能是完全使用其中之一(不尝试合并)。或者只是从头开始重新创建它。 在项目的早期阶段,您可能会遇到许多冲突,在该阶段中,所有主要依赖项都在添加中。
答案 1 :(得分:1)
要回答您的奖励问题:
有一种方法可以教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
文件添加到您的仓库中(并提交):
package-lock.json merge=theirs
有关详细说明,请参见my blog post。