golang 本地调试第三方库的代码

文章目录

    正在用的 golang 三方库 GoAdmin,发现有个时间区间组件的 bug。

    • 时间组件无法切换 中文 locale
    • 过滤功能无效。目前猜测是 locale 问题导致的日期格式问题

    想自己调试一下看看能否解决。

    但是如何调试呢?

    首先,我是想直接修改 GOPATH/src 下的代码,然后重新编译。但是发现

    > ls $GOPATH/src/github.com/GoAdminGroup/
    

    是空的。。。

    解决方法

    使用 go mod 替换源的方式:

    go mod edit -replace github.com/GoAdminGroup/go-admin=/home/zhongwei/work/go-admin
    

    这样就将 github 的库替换为了本地版本。

    此时,打开 mod 文件,会发现 go.mod 的文件结尾多了一行:

    replace github.com/GoAdminGroup/go-admin => /home/zhongwei/work/go-admin
    

    加入调试代码,再次 go build 编译,就能看到效果了。

    参考

    • https://thewebivore.com/using-replace-in-go-mod-to-point-to-your-local-module/
    • https://stackoverflow.com/questions/39215629/importing-local-changes-of-a-package-without-pushing-code-in-golang

    为何 GOPATH/src 下是空的

    原来新版本的 golang 采用了新的依赖管理方式,新的依赖目录在 GOPATH/pkg/mod 下。

    例如:

    > ls $GOPATH/pkg/mod/github.com/!go!admin!group/
    'go-admin@v0.0.0-20200417103543-48563f496c5e'/  'go-admin@v1.2.13'/  'go-admin@v1.2.8'/  'go-admin@v1.2.9'/  'html@v0.0.1'/  'themes@v0.0.30'/  'themes@v0.0.31'/  'themes@v0.0.36'/
    

    参考:https://juejin.im/post/5c9c8c4fe51d450bc9547ba1

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式