我们只支持Android和iOS,但我们正在使用的包(flutter-maplibre-gl)的web子包(maplibre_gl_web)发生版本冲突,即:
因为git中的mapibre_gl_web的每个版本都依赖于image ^3.0.2,flutter_launcher_icons >=0.12.0依赖于image ^4.0.15,所以git中的mapibre_gl_web与flutter_launcher_icons >=0.12.0不兼容。
有没有办法通过排除未使用的子包来解决这个问题?
1条答案
按热度按时间31moq8wy1#
我不认为有一种直接的方法可以排除传递依赖,但是你可以使用
dependency_overrides
来覆盖传递依赖的版本约束。也就是说,你应该能够做到:强制所有
package:image
在依赖关系图中使用4.0.15版本(或兼容版本)。也就是说,它将强制maplibre_gl_web
使用image: ^4.0.15
依赖项。请注意,这样做可能会破坏
maplibre_gl_web
包,但由于您实际上并没有使用它,所以这可能是可以的。或者,您可以覆盖
maplibre_gl_web
依赖本身并将其指向一个空包:然后创建一个
fake_maplibre_gl_web
子目录,其中包含自己的pubspec.yaml
文件:空包方法需要做更多的工作,但在功能上等同于排除包。它也可能更安全一点,因为它不会覆盖
flutter_launcher_icons
想要使用的image
包的任何版本。