dependency_overrides 用于具有路径依赖的依赖

spy*_*don 5 dart flutter flame

在 Flame 中,我们有一个包含 Flame 的 monorepo 及其桥接包,并且所有桥接包都将 Flame 作为路径依赖项(不是在发布时)。似乎不可能同时依赖于我们的主分支和主分支上的桥接库,我在文件中有这样的内容pubspec.yaml

\n
dependencies:\n  flutter:\n    sdk: flutter\n  flame:\n    git:\n      url: git@github.com:flame-engine/flame.git\n      path: packages/flame\n      ref: main\n  flame_fire_atlas:\n    git:\n      url: git@github.com:flame-engine/flame.git\n      path: packages/flame_fire_atlas\n      ref: main\n\ndependency_overrides:\n  flame:\n    git:\n      url: git@github.com:flame-engine/flame.git\n      path: packages/flame\n      ref: main\n
Run Code Online (Sandbox Code Playgroud)\n

做时pub get我得到:

\n
Error on line 15, column 11: Invalid description in the "flame_fire_atlas" pubspec on the "flame" dependency: "../flame" is a relative path, but this isn\'t a local pubspec.\n   \xe2\x95\xb7\n15 \xe2\x94\x82     path: ../flame\n   \xe2\x94\x82           ^^^^^^^^\n   \xe2\x95\xb5\npub get failed (65;    \xe2\x95\xb5)\n
Run Code Online (Sandbox Code Playgroud)\n

这表明dependency_override未使用,是否无法覆盖路径依赖项?

\n

spy*_*don 0

显然这是 pub 中的一个错误,目前解决它的唯一方法是将所需的依赖项克隆到包期望的路径。

因此,在这种情况下,我必须克隆我想要使用的../flame与项目 pubspec 文件相关的 Flame 分支。