我写了一个main.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, and you can learn more here:
https://github.com/golang/tools/blob/master/gopls/doc/workspace.md.
我需要关于如何传递此错误的帮助。非常感谢。
5条答案
按热度按时间jpfvwuh41#
您需要在项目的根目录下从命令行运行
go mod init
命令。看起来像是从go-microservice/prod-api
运行的,但它应该在.git
所在的位置运行。如果prod-api
实际上是git项目的根目录,那么您需要在VSCode中打开该文件夹,而不是go-microservice
。nmpmafwu2#
我刚开始使用Golang,所以我不确定这是否能帮助你。
这个错误出现在VS Code中,为了解决这个问题,我需要将一个空的github repo克隆到一个新文件夹中,以便稍后添加main.go文件。
我能够添加,提交和推送更改。lint错误现在已经消失了。
在我的例子中,.git文件夹位于上方,而不是在main.go旁边:
在后端文件夹中,go.mod是用
GitHub似乎将默认分支从master改为main。如果您使用github,请检查您是否在正确的分支中,默认情况下可能是
main
。bkhjykvo3#
如果您将hello.go从prod-api移动到GO-MICROSERVICE的根文件夹,则不会出现错误。
ojsjcaue4#
您可以通过在gopls设置中添加
"build.experimentalWorkspaceModule": true
来禁用此问题This mentioned in the link appear in the error
mqxuamgl5#
解决方案可能非常简单,就像我的例子一样。在我的例子中,它就像我在VSCode中打开的文件夹的层次结构一样简单。
如果你看一下我的项目层次结构,当我在VSCode中打开名为“start”的文件夹时,我得到了错误,这是main.go所在的直接文件夹。我和你一样得到了突出显示的红色包错误。
然后在VSCode中,我选择“打开文件夹”,并打开项目的上一级,文件夹“go_start_code”。错误消失了。