Dart/Flutter 中的依赖关系图?

Posted

技术标签:

【中文标题】Dart/Flutter 中的依赖关系图?【英文标题】:Dependency diagram in Dart/Flutter? 【发布时间】:2019-12-02 02:39:48 【问题描述】:

有没有办法查看我的颤振项目中的包是如何相互依赖的? 在包下,我的意思是内部包:“lib”下的文件夹。 此外,最好检查包之间的循环依赖关系。

【问题讨论】:

【参考方案1】:

您可以使用以下命令查看您的 Flutter 应用的依赖关系图。

flutter pub deps

依赖信息打印为树、列表或紧凑列表。

【讨论】:

这很有趣。但是,我有兴趣在我的应用程序中查看内部依赖项,而不是外部依赖项。我更新了我的问题以明确说明。 通过--no-dev 选项隐藏dev_dependencies【参考方案2】:

我也在寻找一种显示内部依赖关系的工具,但找不到。所以我写了一个名为 Lakos 的工具来可视化 Graphviz 中的 Dart/Flutter 库依赖关系。 Lakos 将可视化项目内部的依赖关系,而不是外部包依赖关系。 Lakos 还会使用退出代码警告依赖循环。

https://pub.dev/packages/lakos

示例用法:

lakos --metrics . | dot -Tpng -Gdpi=200 -o lakos_example.png

输出将如下所示:

【讨论】:

太棒了,谢谢伙计!【参考方案3】:

虽然我没有找到检测依赖关系的工具,但我在我的文件夹前面加上数字,按抽象级别对它们进行排序:较高级别在顶部,较低级别在底部。

并且,为了避免循环依赖,我观察包只引用更大的数字,而不是更小的数字:

【讨论】:

以上是关于Dart/Flutter 中的依赖关系图?的主要内容,如果未能解决你的问题,请参考以下文章

利用Graphviz绘制逻辑关系依赖图

华为云技术分享Linux内核模块依赖图绘制

Linux 中 C++ 的类层次结构/依赖关系图生成器

Flutter Dart:模型类字段内的动态关系

在 python 中构建依赖关系图

UML中的6大关系(关联依赖聚合组合泛化实现)