背景
由于在开发项目的过程中,使用了go mod vendor的模式,也就是依赖放在vendor目录下,但是由于一些设置导致vscode代码无法追溯的问题。
问题解决
由于使用的vendor模式,也就是所引用的代码处于vendor目录下,这时候先看看工作环境下的go env,主要看两个环境参数GO111MODULE与GOFLAGS,正常默认情况下GO111MODULE为auto,这种情况下不用修改,因为这个参数的作用主要是决定你当前是使用传统的GOPATH还是采用了包管理工作go.mod的工作方式。
既然这个参数不用改,因为项目本身的依赖又处于vendor下,那么vscode插件无法找寻到特定依赖文件也很正常,这时候有两种配置方式来引导插件做依赖库的追溯。
全局配置
go env -w GOFLAGS="-mod=vendor"
直接配置GOFLAGS参数,让整个工作环境的go运行时都默认采用vendor模式寻找依赖,当然这种全局的方式不推荐使用。
vscode配置
在当前项目目录下,添加.vscode目录,并在此目录下添加settings.json文件,文件中添加特定配置如下:
{
"go.buildFlags": [
"-mod=vendor"
]
}
这样的话,此项目下的插件也是可以追溯到vendor依赖库文件的。