vscode 搭建 golang 开发环境

介绍

在 vscode 搭建 go 的开发环境需要区分两个方向:

  • go 1.19.0 及其更高版本
  • go 1.19.0 之前的版本

为什么这么分,因为 vscode-go 插件自带的工具安装脚本全部都是装最新版的各类工具,这些工具中有部分要求 go 1.19.0 以上才能安装成功。

但是我们知道这些工具不是一夜之间冒出来的,他们也是有旧版本的。所以想让 vscode 用这些旧版本的工具来构建开发环境,我们就要手动指定各种旧版本来处理。

好了进入正题:

准备工作,安装 golang

首先在 https://go.dev/dl/ 里面下载 go 1.19 或者更高版本,windows 系统直接下载 msi 安装最省事。

linux 的下载对应的源码包,按照官方的两步走就能安装成功

  1. 移除旧版和解压新版
bash 复制代码
$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
  1. 设置环境变量
bash 复制代码
export PATH=$PATH:/usr/local/go/bin
  1. 无论什么系统,安装完后执行 go version,能显示版本就是安装成功
bash 复制代码
go version
# go version go1.17.13 windows/amd64

go 1.19 及更高版本

首先 vscode 安装 go 的插件

https://marketplace.visualstudio.com/items?itemName=golang.go

装完后在 vscode 按下 ctrl+p, 会有个输入框,先输入 >,就可以选择各种命令,选择 Go: Install/Update Tools 这个指令,就会跳一个工具列表,可以全选然后下载就行。

网络环境没问题时,这些工具装完,vscode 就能对 go 进行完整的语法支持了。

go 1.19 以下的版本

这里以 go 1.17 做例子

这里需要安装下面两个指定版本的工具:

bash 复制代码
go install github.com/go-delve/delve/cmd/dlv@v1.7.3
go install golang.org/x/tools/gopls@v0.11.0

这两个工具一个提供跳转支持,一个提供debug支持,其他的工具需要自己去找出对应的低版本进行安装。但是装完这两个就可以进行开发了。

配置调试文件

在工作目录下创建 .vscode , 在里面创建 launch.json ,写入以下内容,就可以对当文件进行断点调试

.vscode/launch.json

json 复制代码
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}"
        }
    ]
}

依赖降级方法

如果项目是用 1.19 以上创建的,现在需要迁移到 1.17,那么就要对依赖的库进行降级。

如果有依赖包降级需要,到这个依赖包的 github 页面,进入 release 页面,里面有这个包

每次发布的版本 tag 和时间,选择 2021-12-3 以前发布的版本就能适配 golang 1.17

golang 1.17 是在 2021-8-16 发布的

下面是几个常用工具库的版本举例:

viper

go get github.com/spf13/viper@v1.10.1

resty

go get github.com/go-resty/resty/v2@v2.7.0

go-rod

go get github.com/go-rod/rod@v0.101.0

go 配置国内代理

bash 复制代码
# -w 作用是覆盖默认的设置
go env -w GOPROXY='https://goproxy.cn,direct'
相关推荐
@大迁世界21 分钟前
告别 Go,拥抱 Rust
开发语言·golang·rust
golang学习记1 小时前
Zed Git重大更新:目录级对比支持分栏Diff
git·vscode·zed
JPower_mr.g3 小时前
SmartCall v1.0.9 发布:智能体知识库上线,让 AI 客服先查资料再回答
java·ide·人工智能·macos·架构·开源·xcode
喵了几个咪5 小时前
GoWind ShortPlay 拆解:不用模型的推荐闭环——埋点回流、三路召回与已看去重
开发语言·后端·微服务·golang·gowind
Dev _5 小时前
PyCharm旧进程仍在后台运行,导致新实例无法启动或连接
ide·python·pycharm
喵了几个咪7 小时前
GoWind UBA 拆解:把 Doris UNIQUE KEY 翻译成 ClickHouse——读数正确性对齐实录
开发语言·后端·clickhouse·微服务·golang·gowind
FungLeo7 小时前
成为全栈·Go 后端篇·用 Go 重写分层架构:领域包、装配根与最小抽象
golang·go·领域驱动设计·gorm·分层架构·成为全栈
北冥you鱼7 小时前
Go 语言 Ticker 定时任务全解析:原理、陷阱与最佳实践
开发语言·数据库·golang
无巧不成书02188 小时前
Tomcat部署JSP文件完整指南:手动部署+IDEA工程化实现 附404访问错误全排查
java·ide·windows·tomcat·intellij-idea·js
我不会起名字3228 小时前
Go 服务升级 Go 1.2x 后 P99 变差:GMP 调度相关的 3 个变化
golang·go·gmp·调度·gomaxprocs