golang vscode环境报错gopls was not able to find modules in your workspace的解决方式

这篇具有很好参考价值的文章主要介绍了golang vscode环境报错gopls was not able to find modules in your workspace的解决方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

错误提示

分析

解决方式

方法一:将workspace与项目路径保持一致

方案二:使用go work指明纳入工作区的的module

总结


错误提示

golang从老版本升级到go1.20.5后打开vscode,发现代码不能自动补全了,而且vscode跳出一下的错误提示

gopls was not able to find modules in your workspace.

When outside of GOPATH, gopls needs to know which modules you are working on.

You can fix this by opening your workspace to a folder inside a Go module, or

by using a go.work file to specify multiple modules.

See the documentation for more information on setting up your workspace

分析

上述的错误提示已经很简明了,golang是从v1.11引入了go mod机制,为了完善go mod机制,又从v1.18引入了多模块工作区机制(要把哪些mod纳入到你的工作区内),即go work机制,从之前的版本升级到v1.18及之后,你的vscode工作环境可能会报错。

我的vscode打开的文件夹的路径默认作为了其工作区(workspace),而这个工作区的根目录要有go.mod文件,如果根目录没有这个go.mod就要指定哪些子目录的go mod纳入工作区,说起来比较绕:总结下面几条:

  • 一般是项目的根目录作为了工作区,如果是项目的父目录或者子目录作为了工作区,则需要go work命令指明哪些mod纳入自己的工作区
  • workspace的根目录下要有go.mod,如果没有go.mod,可以生成一个,如果不想在workspace下生成,就需要用go work命令指明workspace下的哪些mod需要纳入工作区

 解决之前:

golang vscode环境报错gopls was not able to find modules in your workspace的解决方式

 

解决方式

方法一:将workspace与项目路径保持一致

vscode重新打开目录,直接打开项目文件夹,将项目路径作为工作区,vscode直接打开项目路径,由于我的项目路径根目录下已经有了go.mod

gopls不会报错

vscode打开如图:

golang vscode环境报错gopls was not able to find modules in your workspace的解决方式

方案二:使用go work指明纳入工作区的的module

我是将项目目录的父目录作为工作区,用go work命令将需要的module纳入工作区,操作如图

golang vscode环境报错gopls was not able to find modules in your workspace的解决方式

 vscode打开如图:

golang vscode环境报错gopls was not able to find modules in your workspace的解决方式

总结

这个小问题的解决主要是理解workspace概念,一个workspace可以包含了多个module,好的习惯就是workspace与自己的项目路径一致,且自己的项目根目录下有go.mod

如果workspace与项目路径不一致,则需要用go work将module纳入自己的workspace中,go work的路径是workspace的相对路径文章来源地址https://www.toymoban.com/news/detail-489077.html

到了这里,关于golang vscode环境报错gopls was not able to find modules in your workspace的解决方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包