场景再现
今天碰到这么个情况:
1。 一个【dart包工程 A】(通常自己无法独立运行,需要作为别的工程的依赖才可以运行),它依赖一个【flutter plugin B】(dart+native);
2 因为那个【dart包工程 A】无法单独运行,因此给它加了一个【example工程 C】来依赖【dart包工程A】,从而实现快速开发测试的目的;
3 但是【flutter plugin B】因为涉及native代码,有非常多的依赖【依赖 D】,导致【example工程 C】运行起来很麻烦(因为要连带着把那些依赖都加进来);
4 目前只有【example工程 C】代码随便改动,其他工程代码都是需要上线的,不能随意改动,怎么办?
学到一个配置(dependency_overrides)
# 直接在【example工程 C】的pubspec.yaml文件中加入dependency_overrides配置,让它的依赖改到本地local_plugins中,这个里面可以简单的做一个mock实现
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
dependency_overrides:
tt_ad_flutter_plugin:
path: ./local_plugins/***_flutter_plugin
dev_dependencies:
flutter_test:
sdk: flutter
其他方案
- 可以想办法优化【flutter plugin B】的实现,比如通过运行时的方式减少依赖,这样就不需要维护本地的local_plugins了。
网友评论