飞镖/扑动
想象一下:
有套餐A、套餐B、套餐C。 包 A 依赖于包 B。 包 B 对包 C 具有 dev_dependency 且具有固定版本。
现在想象一下包 A 也对包 C 具有依赖关系(甚至是 dev_dependency),但具有不同的固定版本。为包 A 运行 Flutter pub get 不会出现抱怨,因为包 C 隐藏在包 B 的 dev_dependency 部分中。
但是这个星座会出现任何类型的错误或运行时错误吗?那么将使用哪个版本的 Package C?
干杯, 奥加
这在 Dart 中有记录:https://dart.dev/tools/pub/versioning
如果您使用固定版本号,则软件包版本需要完全匹配,您不能拥有具有不同版本号的同一软件包的 2 个副本。
当您执行
dart pub get
命令时,将会检查这一点,如果发现任何版本不匹配,该工具会告诉您。这发生在构建时,所以早于运行时。
Dart 方法是使用版本约束,以便可以找到包 C 的匹配版本,该版本与包 A 和 B 的范围约束相匹配。