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'
相关推荐
Vincent_Vang2 分钟前
多态 、抽象类、抽象类和具体类的区别、抽象方法和具体方法的区别 以及 重载和重写的相同和不同之处
java·开发语言·前端·ide
浩泽学编程1 小时前
内网开发?系统环境变量无权限配置?快速解决使用其他版本node.js
前端·vue.js·vscode·node.js·js
Irene19912 小时前
实用篇:vsCode 中连接 WSL 并快速开始一个 Vue3 新项目
git·vscode·vue·wsl
i757_w2 小时前
IDEA快捷键被占用
java·ide·intellij-idea
讲师-汪春波2 小时前
win11 vscode 配置 claude code
ide·vscode·编辑器
神气龙3 小时前
VS Code连接wsl上Conda虚拟环境,打开Jupyter Notebook
ide·python·jupyter
L Jiawen5 小时前
【Go · Gin】基础知识
开发语言·golang·gin
wadesir15 小时前
Go语言中高效读取数据(详解io包的ReadAll函数用法)
开发语言·后端·golang
幺零九零零17 小时前
Golang-Swagger
开发语言·后端·golang