使用VSCode作为Golang开发环境前你需要知道的事

2022-03-26  本文已影响0人  小餐包

环境变量

GOROOT

GOROOT 环境变量用来定义Go SDK的安装位置,除非你想使用不同版本的Go,通常情况下我们是不需要更改这个环境变量的值的。在MacOS上,它的默认位置是 /usr/local/go (Windows系统上是 c:\Go ), 假如你是通过HomeBrew来安装Go的话,那么它的默认安装位置是/usr/local/Cellar/go/。此时,你将需要配置如下环境变量:

export GOROOT=/usr/local/Cellar/go/{version}
export PATH=$PATH:$GOROOT/bin

GOPATH

GOPATH 环境变量用来定义你工作空间的根目录。在Linux和MacOS上,它的默认值是
~/go(在Windows上则是%USERPROFILE%/go). GOPATH 存储了你的开发代码以及其依赖的其他文件。你可以通过配置这个值来自定义你的工作空间目录,这个目录下通常存在三个子目录,其用途如下:

注意:官方在Go 1.13之后推出了Go modules项目作为Go的包依赖管理解决方案,对于使用go mod来管理包依赖的项目已经不再需要关注这个环境变量了,这是更优雅的解决方案,建议有条件的项目都尽早迁移到go mod上。

GOMOD

该变量表示的是 go.mod文件所在目录的绝对路径. 当开启module-aware模式时,而当前目录又不存在go.mod文件时, GOMOD 值会被设置为"/dev/null"( 在Windows上,则为"NUL"). 当关闭module-aware模式时,GOMOD 的值将是一个空字符串。
我们通常无需手动设置这个变量值,因为go tool会在项目的根目录找到 go.mod 文件后主动设置其值为正确的位置。

VSCode配置

如下配置主要针对使用GOPATH的老项目而言,新项目建议无脑使用GOMOD

自动推导 GOPATH

注意: 该功能仅在 GOPATH 模式下生效, GOMOD模式下无效,并且注意go.inferGopath 配置会覆盖 go.gopath 配置。

简单说,打开这个功能后,IDE会递归搜索当前工作目录的上级目录直到找到
src 目录,然后将src目录的上级目录作为GOPATH,举个栗子,假设你配置了你的GOPATH$HOME/go,对于如下目录结构的项目:

foo/
└── bar
    └── src
        └── main.go

如果你将 foo 目录作为你工作空间的根目录,那么 "go.inferGopath" 会自动将GOPATH 的值设置为 $HOME/go:/path/to/foo/bar.

这个设置非常有用,因为对于不使用GOMOD的项目,你将无需为这类项目单独配置 GOPATH

将工具包安装到另外的目录 GOBIN

如果你频繁的切换你的 GOPATH,当在VSCode中打开这些新项目时拓展经常会提示你安装Go-Tools。对此,你可以通过将工具包的路径加到PATH里来解决这个问题。又或者,你可以通过 GOBIN来指定所有这些二进制工具包的安装位置配,配置如下:

"go.toolsEnvVars": {
    "GOBIN": "path/to/gobin"
}

参考文档

上一篇下一篇

猜你喜欢

热点阅读