前言

由于之前写项目,所以通过gomod创建了项目的GOPATH路径,但是此时我发现此工作区下的其他文件夹中的package会出现红线并提示如下:

虽然这样依旧可以正常运行,但是谁喜欢天天看小红线嘞,总是得去掉它的。那么我们可以看到在他下面是给提供了一个参考文档的:https://github.com/golang/tools/blob/master/gopls/doc/workspace.md

不妨进入参考文档康康

可以发现它是介绍的通过gopls来设置工作区的文档,具体如下(为方便观看,采用了双语翻译):

One module 一个模块

If you are working with a single module, you can open the module root (the directory containing the go.mod file), a subdirectory within the module, or a parent directory containing the module.

如果使用单个模块,可以打开模块根目录(包含 go.mod 文件的目录)、模块中的子目录或包含模块的父目录。

Note: If you open a parent directory containing a module, it must only contain that single module. Otherwise, you are working with multiple modules.

注意: 如果打开一个包含模块的父目录,它必须只包含该单个模块。否则,您将使用多个模块。

Multiple modules 多个模块

Gopls has several alternatives for working on multiple modules simultaneously, described below. Starting with Go 1.18, Go workspaces are the preferred solution.

Gopls 有几种同时处理多个模块的替代方案,如下所述。从 Go 1.18开始,Go 工作区是首选的解决方案。

Multiple workspace folders 多个工作区文件夹

If neither of the above solutions work, and your editor allows configuring the set of “workspace folders” used during your LSP session, you can still work on multiple modules by adding a workspace folder at each module root (the locations of go.mod files). This means that each module has its own scope, and features will not work across modules.

如果上述两个解决方案都不能正常工作,并且您的编辑器允许配置在 LSP 会话期间使用的一组“工作区文件夹”,那么您仍然可以通过在每个模块根目录(go.mod 文件的位置)添加一个工作区文件夹来处理多个模块。这意味着每个模块都有自己的作用域,特性不能跨模块工作。

In VS Code, you can create a workspace folder by setting up a multi-root workspace. View the documentation for your editor plugin to learn how to configure a workspace folder in your editor.

在 VS Code 中,可以通过设置多根工作区来创建工作区文件夹。查看编辑器插件的文档,了解如何在编辑器中配置工作区文件夹。

此时我们不难发现,go module模式是分为两种的,分别是单模块和多模块

单模块是指该文件及其子目录下只能有一个go.mod文件,如果新建包或者移动到该目录下,会构成子代嵌套,依旧视为是一个module。

多模块是默认关闭的,所以要手动打开,一般官方推荐的方法是采用工作区的方式,也就是为每个模块创建一个工作区文件夹,这样每个模块都会有自己的作用域,并且不会垮模块工作。那么此时的问题来了,怎么为多模块配置工作区呢

解决方案

由于多模块尚不完善,所以是默认关闭的,如果自己真的需要,则需要自己手动开启了。此时我们可以配置experimentalWorkspaceModule来打开。

首先,在vscode中,进入vscode的设置

之后进入扩展go里面,修改setting.json

之后在代码中增加如下代码:

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

注意外面要用gopls包裹,否则无法识别该配置项,不会起作用。

之后保存设置并重启vscode,重新导入工作文件夹,就发现package下面的小红线消失了

原文地址: https://blog.donstpast.cn/index.php/archives/123/

关于vscode中出现gopls was not able to find modules in your workspace报错的解决方案相关推荐

  1. 关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案

    关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案 参考文章: (1)关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案 (2)ht ...

  2. Linux CentOS7 中 完美解决VMTools失效,windows 与 Liunx间完美复制文件,无报错的解决方案

    Linux CentOS7 中 完美解决VMTools失效,windows 与 Liunx间完美复制文件,无报错的解决方案 DreamFollowerss 2020-05-25 12:03:08  3 ...

  3. 关于Entity Framework中的Attached报错相关解决方案的总结

    关于Entity Framework中的Attached报错的问题,我这里分为以下几种类型,每种类型我都给出相应的解决方案,希望能给大家带来一些的帮助,当然作为读者的您如果觉得有不同的意见或更好的方法 ...

  4. Altium Designer中PCB关于Import Changes报错最终解决方案

    Altium Designer中PCB关于Import Changes报错最终解决方案 参考文章: (1)Altium Designer中PCB关于Import Changes报错最终解决方案 (2) ...

  5. 在idea中使用@Test注解报错的解决方案

    在idea中使用@Test注解报错的解决方案 参考文章: (1)在idea中使用@Test注解报错的解决方案 (2)https://www.cnblogs.com/charlypage/p/90479 ...

  6. word中运行Mathtype报错问题解决方案(The MathType DLL cannot be found)

    文章目录 word中运行Mathtype报错问题解决方案 必要时卸载mathtype[也需删除对应的加载项](卸载完mathtype后,word加载项中还是有mathtype的解决方法) 安装之后将M ...

  7. 在学习thymeleaf中,给function 方法传Controller传递过来的参数,报错:Uncaught SyntaxError: missing ) after argument list

    在学习thymeleaf中,给function 方法传Controller传递过来的参数. 报错:Uncaught SyntaxError: missing ) after argument list ...

  8. VS中编译带Qt的他人项目,环境搭建及解决报错

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 VS中编译带Qt的他人项目,环境搭建及解决报错 一.安装VS及Qt及Qt VS Tools 二.报错及解决办法 1.未能找到程序集&q ...

  9. PLB配置:PLB中新建负载均衡-新增server,点击“保存”,页面报错:介质包上传失败。后台异常:com.primeton.appserver.common.exception.BaseExcep

    [问题描述] PLB V6中新建负载均衡-新增server,点击"保存",页面报错:介质包上传失败.后台异常:com.primeton.appserver.common.excep ...

最新文章

  1. QTP连接oracle
  2. 一文读懂卷积神经网络
  3. 编写安全的ASP代码
  4. StringBuffer、StringBuilder区别以及Synchronized原理
  5. python怎么读取txt文件第二行-Python:如何选择文本文件的第一行,以及第二行……?...
  6. UOJ #514 [UR #19]通用测评号 (容斥原理、DP)
  7. Comments on task “Smart Service II: Wrap up and make it ready for Demo“
  8. swig封装 c语言函数到python库,python swig 调用C/C++接口
  9. 4种不同类别的机器学习概述
  10. Redmine Gantt 实现 (Show relations in Gantt diagram)
  11. WriteableBitmap 巧学巧用
  12. YOLOV3算法详解
  13. marlin固件烧录教程_Marlin固件配置教程
  14. HBuilder git使用教程
  15. 加入中视频计划赚钱吗?你还别不信收益确定高
  16. ZBar源码分析(二)
  17. 【在线可测】通用中文点选验证码识别
  18. 我的2022总结和2023展望
  19. XTDrone无人机、无人车等自动控制仿真平台
  20. 怎么将简历和个人作品做成二维码?个人资料如何转二维码?

热门文章

  1. python 旧照片_DeOldify黑白旧照片着色神器:基于NoGAN的深度学习来实现旧照着色还原...
  2. 【UE4】PMC程序化生成戈德堡多面体详解(六边形星球)
  3. Bean with name ‘XX‘ has been injected into other beans [XX,XX] in its raw version.......... 错误分析及解决
  4. 华为MA5626 ONU配置成交换机及开启POE指令教程
  5. Web 和http协议
  6. java同步,异步和阻塞,非阻塞的联系和区别
  7. SuperMap iDesktop 之 BIM优化流程——建筑篇
  8. 鼓式制动系统行业研究及十四五规划分析报告
  9. js获取html中图片路径,用js快速的获取html页面中图片的地址
  10. 微信小程序云开发获取上传图片后https的url链接地址