在 Dart 和 Pub 中,我应该将 pubspec.lock 添加到我的 .gitignore 吗?

Posted

技术标签:

【中文标题】在 Dart 和 Pub 中,我应该将 pubspec.lock 添加到我的 .gitignore 吗?【英文标题】:In Dart and Pub, should I add pubspec.lock to my .gitignore? 【发布时间】:2013-04-14 17:49:37 【问题描述】:

我是否应该将此生成的文件添加到我的 .gitignore 以使其不会显示在我的存储库中?

pubspec.lock 是否应该包含在我的存储库中?

【问题讨论】:

【参考方案1】:

这个答案有两部分,类似于this question about Ruby bundler中的问答。

应用程序包

如果您正在处理application package,那么您应该将pubspec.lock 文件保存在您的存储库中,作为您的依赖关系的快照。

来自 Pub 词汇表:

应用程序包应将其锁定文件检查到源代码控制中, 以便每个在应用程序和每个位置工作的人 部署的应用程序具有一组一致的依赖项。

库包

但是,如果您正在处理library package,则不应签入锁定文件。

来自 Pub 词汇表:

库包不应将其锁定文件检查到源代码管理中, 因为它们应该支持一系列依赖版本。


另见Pub glossary entry for lockfiles

【讨论】:

以上是关于在 Dart 和 Pub 中,我应该将 pubspec.lock 添加到我的 .gitignore 吗?的主要内容,如果未能解决你的问题,请参考以下文章

在带有 Pub 的 Dart 中,我啥时候应该对依赖项使用“任何”版本约束?

我应该将 Flutter/Dart 中生成的代码提交给 VCS

如何从 Dart 包的 pub 发布中排除文件?

如何在 Ubuntu 网络服务器上为 Dart 安装 pub(命令行使用)

Visual Studio代码 - 目标URI不存在

Dart pub 全局运行无法解析脚本名称