使用模块时,在工作空间中使VSCode安装软件包

时间:2020-05-02 11:14:12

标签: go visual-studio-code vscode-settings

我没有使用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,以便它可以使用模块在我的工作区中安装软件包?

1 个答案:

答案 0 :(得分:0)

您的go.gopath工作区设置(相当于打开的工作区的$GOPATH)指向(我想)您也有go.mod的项目目录。

使用Go模块,您无法使go.gopath$GOPATH)指向使用模块的项目目录。如果要使用go getgo install,则需要将go.gopath移动到其他位置(如果每个项目都希望使用一个GOPATH,则它也可以是项目目录中的子目录)。注意可能仍会引起问题的some tools Visual Studio Code uses are module aware and some not

使用Go模块时的推荐解决方案是切换到支持模块的新语言服务器gopls。这是跟踪Visual Studio Code中Go模块支持的页面,并指导如何启用goplshttps://github.com/Microsoft/vscode-go/wiki/Go-modules-support-in-Visual-Studio-Code