-
flutter开发,遇到引入package:collection/collection.dart时报警告,这虽然不致命,但是对于一个强迫症来说,简直是不能容忍的问题!原本以为像Java一样,collections工具类,应该是sdk自带的吧,但是查询得知这是一个第三方包:collection.dart
-
警告本身的意思是,依赖了被引用的包。所以,我们可以找一下被引用的地方是哪里:
flutter pub deps
找到了这个包的引用位置:
-
所以下面的操作就看你自己了:知其然知其所以然,可以在文件中增加一个注释,忽略这个警告。
// ignore_for_file: depend_on_referenced_packages
注意:一旦你决定这么做了,那么这个文件中,所有引用了第三方包引用的其他包时,都不会再报这个警告了。带来的后果就是,如果你引用的第三方包发生了变化,很可能会导致你的现有功能不能正常工作。
比如,上面的图中,如果我修改了:build_runner 2.1.11(假如)的版本号,而新的版本号对应的版本中去掉了collection引用,那么,就该出问题了。明明没有对这个文件进行任何操作,而这个文件却工作不正常了。
对于目前flutter插件稳定性不高,版本兼容性不好的基本情况来说,这个问题会是经常出现的。 -
所以,这样解决问题并不好。
-
那么应该怎样解决这个问题嗫,我们来探讨一下。
-
flutter引用包是不能像伟大的Gradle一样,拥有编程思维,可以优雅的排除包中的子包。但是,我们可以明确的了解每一个引用的具体版本号。
找到这个文件,搜索 collection:
于是我们知道了,build_runner引用的子包的子包,引用collection时,用的是1.16.0版本。 -
所以嗫,我们可以重复引用这个包,明确指出,我就是要用这个包!
-
在pubspec.yaml中明确添加collection包的引用:
-
再去查看引用了collection的文件,一切归于宁静。
所以各位,遇到问题不要慌!打开手机,发个朋友圈!
版权归属:
火星人
本文链接:
http://localhost:8090/archives/flutter-yu-dao-jing-gao-dependonreferencedpackages-zen-me-chu-li
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区