我没有使用go模块构建了一个go应用。
我使用VSCode作为编辑器。我已经在VSCode工作区中设置了以下内容
myapp-workspace.workspace-code
{
"folders": [
{
"path": "."
}
],
"settings": {
"go.gopath": "/Users/blah/blah/myapp/",
"go.testFlags": ["-v"]
}
}
一切正常,我可以从VSCode命令行中 安装当前软件包 ,结果是看到文件 myapp.a 文件夹 / Users / blah / blah / myapp / bin / myapp 。
然后,我决定使用 go模块。我运行命令go mod init github.com/myuser/myapp
,但我的生活不再幸福。
如果我尝试运行 安装当前软件包 ,则会收到错误Installation failed: $GOPATH/go.mod exists but should not
。如果我从工作空间中删除设置,则会安装该软件包,但会将其安装在〜/ go / bin 中。
哪种方法可以配置VSCode,以便它可以使用模块在我的工作区中安装软件包?
答案 0 :(得分:0)
您的go.gopath
工作区设置(相当于打开的工作区的$GOPATH
)指向(我想)您也有go.mod
的项目目录。
使用Go模块,您无法使go.gopath
($GOPATH
)指向使用模块的项目目录。如果要使用go get
和go install
,则需要将go.gopath
移动到其他位置(如果每个项目都希望使用一个GOPATH,则它也可以是项目目录中的子目录)。注意可能仍会引起问题的some tools Visual Studio Code uses are module aware and some not。
使用Go模块时的推荐解决方案是切换到支持模块的新语言服务器gopls
。这是跟踪Visual Studio Code中Go模块支持的页面,并指导如何启用gopls
:https://github.com/Microsoft/vscode-go/wiki/Go-modules-support-in-Visual-Studio-Code