在构建 Golang 项目时,我曾遇到过一个令人困惑的问题:明明已经明确指定了依赖包的版本,但在实际构建过程中,版本号却莫名其妙地被自动升级了。这一现象让我一度摸不着头脑,直到我了解到可以使用 go mod graph
命令来列出所有的依赖关系。然而,该命令的输出结果并不直观,需要将其复制到文本编辑器中进行信息检索,这无疑增加了操作的复杂度。为了解决这一问题,我开始寻找能够更直观地展示 Go 模块依赖关系的可视化工具。
一、有什么好用的可视化工具?
我在网上检索了“Go”、“Module”、“依赖关系”、“可视化” 等关键词,发现 网上还是有很多工具。大部分方案都是用的 graphviz
,echart
, 或者用绘制图片,我就试了几个。
graphviz
graphviz
这个工具很强大,但需要通过其他渠道安装,且生成的svg可读性也不那么好,特别是依赖的包多起来之后,例如下面这个:
这线太乱了,根本看不了呀。
echart
于是乎我转向 echart,哇哦,看着挺不错的,鼠标悬停反馈也不错,配色也很鲜艳。
echart 方案很漂亮,但没法用。svg我还能搜索包名,echart 这个不显示包名。
二、如何安装和使用gmchart?
最终我转向了go mod graph
可视化工具—— gmchart。
github: https://github.com/PaulXu-cn/go-mod-graph-chart
安装方法
go install github.com/PaulXu-cn/go-mod-graph-chart/gmchart
检查安装情况
如下就是成功了:
gmchart --help
Usage of ~\go\bin\gmchart:
-debug int
is debug model
-keep int
start http server not exit
使用方法
进入 golang 项目,输入命令:
go mod graph | gmchart
会自动打开浏览器,如果没有就手动访问 http://127.0.0.1:60306 就能看到。
可以看到,它将依赖形成了一个依赖树,你可以知道某个包在第几层被引入的,非常直观。网页内是一个svg,你要找某个包也非常方便,直接 ctr+F
就能检索。
结语
经过一系列的尝试与比较,我最终选择了 gmchart
这一 Go mod graph 可视化工具。它不仅安装简便,使用方法也十分友好。通过简单的命令操作,gmchart
能够自动生成一个包含所有依赖关系的网页,以树状结构清晰地展示各个包之间的依赖关系。这不仅让我能够直观地了解项目的依赖情况,还大大提高了检索和定位特定包的效率。
延展阅读:
淘宝资损防控是什么?电商商家如何避免大促优惠叠加计算不当造成资金损失?
如何提升电商客服的30秒响应率?客户因等待太久而流失该怎么办?
2024双11京东中腰部商家怎么根据预算和用户画像高效投放广告?
咨询方案 获取更多方案详情