当一个目录中有多个Go项目时,VScode会显示一个错误

ryhaxcpt  于 2022-12-31  发布在  Go
关注(0)|答案(6)|浏览(1382)

在VSCode中打开包含多个Go语言项目的目录时,会出现以下错误:

gopls requires a module at the root of your workspace.
You can work with multiple modules by opening each one as a workspace folder.
Improvements to this workflow will be coming soon (https://github.com/golang/go/issues/32394),
and you can learn more here: https://github.com/golang/go/issues/36899.

如何解决此问题?

csbfibhn

csbfibhn1#

你的工作区中可能有不止一个go模块,如果是这样的话,你可以修改go扩展设置,以允许gopls在工作区中查找多个模块,只需在settings.json中添加以下代码:

"gopls": {
    "experimentalWorkspaceModule": true,
}

您可以在文档中阅读更多关于gopls配置的信息:https://github.com/golang/tools/blob/master/gopls/doc/settings.md

pkwftd7m

pkwftd7m2#

要解决此问题,请执行以下步骤:
步骤1:打开Vscode,然后转到设置。
步骤2:在搜索栏中,键入gopls
步骤3:在它下面你会找到settings.json,点击它
步骤4:粘贴下面的代码他们的“gopls”:{“实验工作空间模块”:真,}
步骤5:保存并重新启动Vscode,现在可以开始了。

mm9b1k5b

mm9b1k5b3#

前进1.18+

从Go语言1.18开始,对多模块工作空间提供了原生支持,这是通过在父目录中放置一个go.work文件来实现的。
对于目录结构,例如:

$ tree /my/parent/dir
/my/parent/dir
├── project-one
│   ├── go.mod
│   ├── project-one.go
│   └── project-one_test.go
└── project-two
    ├── go.mod
    ├── project-two.go
    └── project-two_test.go

通过执行go work创建并填充文件:

cd /my/parent/dir
go work init
go work use project-one
go work use project-two

这将在您的父目录中添加一个go.work文件,其中包含您标记为使用的目录列表:

go 1.18

use (
    ./project-one
    ./project-two
)
ttisahbt

ttisahbt4#

设置已更改,现在您需要用途:

"gopls": {
    "build.experimentalWorkspaceModule": true,
}
zzwlnbp8

zzwlnbp85#

我遇到这个错误是因为我**没有在src**目录中创建我的模块。

$GOPATH
   -> bin
   -> pkg
   -> github.com
      -> Module
         -> go.mod

这需要:

$GOPATH
   -> bin
   -> pkg
   -> src
       -> github.com
          -> Module
            -> go.mod
wnrlj8wa

wnrlj8wa6#

这是工作现在...

"gopls": {
    "build.experimentalWorkspaceModule": true
}

相关问题