每个项目此文件都是自动生成的,如果我向 pubspec.yaml 文件添加任何库,此文件也会更新并添加并显示 URL、名称路径和源。 但是这些文件在项目中的主要用途是什么。
pubspec.lock:
lock 文件允许您根据其依赖项的最新兼容版本来测试您的包。对于应用程序包,我们建议您提交 pubspec。锁定文件。保存 pubspec.锁定确保使用该应用程序的每个人都使用完全相同的版本
当您运行 pub get 时,Pub 包管理器会查看
pubspec.yaml
并生成 pubspec.lock
文件。此锁定文件记录了包的确切版本及其在特定运行期间解决的传递依赖项。
这种“锁定”很重要,否则每当传递依赖项更新(甚至主要依赖项更新,如果使用脱字符号)时,您的代码都可能会中断。
考虑这个例子
假设,如果您的
p
中的包 pubspec.yaml
依赖于另一个具有脱字符号 (^)
版本约束的包 p1,例如 ^1.2.3
,则意味着 p1 的已解析版本可以是向后的任何版本- 与指定版本范围兼容(e.g., >=1.2.3 <2.0.0
)。
pubspec.lock
文件“锁定”这些已解析的版本,包括传递依赖项。这意味着无论您运行多少次flutter pub get
,您都将获得包的确切依赖关系及其传递依赖关系
希望这是有道理的。