背景
由于在开发项目的过程中,使用了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
依赖库文件的。