vscode中vendor模式package无引用导致代码无提示

背景

由于在开发项目的过程中,使用了go mod vendor的模式,也就是依赖放在vendor目录下,但是由于一些设置导致vscode代码无法追溯的问题。

问题解决

由于使用的vendor模式,也就是所引用的代码处于vendor目录下,这时候先看看工作环境下的go env,主要看两个环境参数GO111MODULEGOFLAGS,正常默认情况下GO111MODULEauto,这种情况下不用修改,因为这个参数的作用主要是决定你当前是使用传统的GOPATH还是采用了包管理工作go.mod的工作方式。

既然这个参数不用改,因为项目本身的依赖又处于vendor下,那么vscode插件无法找寻到特定依赖文件也很正常,这时候有两种配置方式来引导插件做依赖库的追溯。

全局配置

go env -w GOFLAGS="-mod=vendor"

直接配置GOFLAGS参数,让整个工作环境的go运行时都默认采用vendor模式寻找依赖,当然这种全局的方式不推荐使用。

vscode配置

在当前项目目录下,添加.vscode目录,并在此目录下添加settings.json文件,文件中添加特定配置如下:

{
 "go.buildFlags": [
        "-mod=vendor"
    ]
}

这样的话,此项目下的插件也是可以追溯到vendor依赖库文件的。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

6 + 14 =