背景
之前构建 golang
遇到个问题,就是明明指定了依赖的包版本,在构建时,又自动把版本号给升上去了,当时不知道为什么。后面知道有个 go mod graph
的命令能列出所有的依赖,试了下,一点都不直观,还得复制到文本编辑器里面来来检索信息。
于是我就上网查了下相关工具。
别的工具
检索 Go Module 依赖关系 可视化
网上还是有很多工具。大部分方案都 graphviz
,echart
, 或者用绘制图片,我就试了几个。
graphviz
这个工具很强大,但需要通过其他渠道安装,且生成的svg可读性也不那么好,特别是依赖的包多起来之后,例如下面这个:
于是乎我转向 echart,
哇哦,看着挺不错的,鼠标悬停反馈也不错,配色也很鲜艳。
echart 方案很漂亮,但没法用。svg我还能搜索包名,echart 这个不显示包名。
我
好了,吐槽归吐槽,问题还是要解决的。今天给大家介绍个 go mod graph
可视化工具—— gmchart
gmchart
github: https://github.com/PaulXu-cn/...
安装
go get -u 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
就能检索。
总结
找了那么久,为啥还是没有一个趁手的工具呢?
我想了下,可视化是前端的擅长的啊,前端不用 golang
啊,会的也少,会 Golang
的前端,还对 go mod graph
这个功能感兴趣的就更少了,所以这个工具只能是我们后端来做了
哎~
其他方案
有疑问加站长微信联系(非本文作者)