繁体   English   中英

使用Git管理package.json和package-lock.json

[英]Managing package.json & package-lock.json with Git

我知道您应该在git 仓库中添加package-lock.json ,以确保团队成员使用相同版本的依赖项。

运行npm install将检查package-lock.json并安装此处指示的版本。 如果没有锁定文件,它将按照package.json的指示从源安装软件包。

那么,是否也应该将package.json添加到您的git仓库中?

如果不是这样,克隆仓库的新团队成员将获得锁定文件,但是无法从锁定文件生成package.json文件,对吗?

额外的问题:如何处理package-lock.json中的合并冲突? 由于它们是机器生成的,因此我发现这种情况经常发生,而且并不总是很清楚应该如何解决。

是的, package.json也应该包括在内。 除了包含项目元数据并且npm需要它之外,它还提供了简洁明了的显式依赖关系视图

关于冲突,最好的选择可能是完全使用其中之一(不尝试合并)。 或者只是从头开始重新创建它。 在项目的早期阶段,您可能会遇到许多冲突,在该阶段中,所有主要依赖项都在添加中。

要回答您的奖金问题:

有一种方法可以教Git使用合并驱动程序和.gitattributes文件自动“合并” 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文件添加到您的.gitattributes (并提交):

package-lock.json merge=theirs

请参阅我的博客文章以获取更详细的说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM