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

dependency_overrides for dependency with path dependency

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

dependencies:
  flutter:
    sdk: flutter
  flame:
    git:
      url: git@github.com:flame-engine/flame.git
      path: packages/flame
      ref: main
  flame_fire_atlas:
    git:
      url: git@github.com:flame-engine/flame.git
      path: packages/flame_fire_atlas
      ref: main

dependency_overrides:
  flame:
    git:
      url: git@github.com:flame-engine/flame.git
      path: packages/flame
      ref: main

当做 pub get 我得到:

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.
   ╷
15 │     path: ../flame
   │           ^^^^^^^^
   ╵
pub get failed (65;    ╵)

表示未使用 dependency_override,是否无法覆盖路径依赖性?

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

所以在这种情况下,我必须将我想使用的 flame 分支克隆到 ../flame,与项目 pubspec 文件相关。