vscode 使用 go module 时即使下载了 mod cache 还是提示找不到 package

2020-03-13 14:44:46 +08:00
 ShangbaizeDaoye
各位大佬好,我最近在学 go。我在 win 上用 vscode 搭建了 go 1.14 环境,用的是 gopls 语言服务器。

我现在是 github 上找些 go 项目拉到本地来学 go 的,有些项目 go.mod 里依赖很多第三方模块,go install 时会在 pkg/mod 自动下载依赖的三方模块。但是即使下载了 mod cache,vscode 里在 import 处还是始终提示找不到 package。

听说前几个版本的 go 不支持 module,以前 go install 是会在 src/里下载存放三方的 package,但现在在使用 module 情况下三方包是放在 pkg/mod 里了。我现在为了让 import 提示和转到定义能正常工作,不可能手动在 src/里下这么多的三方包。如果直接把 pkg/mod 里的缓存复制到 src/里也不太现实,因为缓存文件夹名都有版本号后缀。

各位大佬是怎么解决这个问题的?谢谢指导!
4131 次点击
所在节点    Go 编程语言
9 条回复
ifconfig
2020-03-13 14:56:16 +08:00
同新手,弱弱的问一下不是应该 go get -u 么
puperSB
2020-03-13 15:07:10 +08:00
很明显是你 vscode 配的有问题
joyme
2020-03-13 15:12:40 +08:00
vscode 还去 src 下面找说明没有使用 go module,但是 go 1.14 应该是默认使用的。

我在 linux 上使用 vscode,左下角会有一个 Go Modules 的小图标,你可以检查一下
janxin
2020-03-13 15:15:01 +08:00
可能是 gopls 挂掉了,结束一下进程试试
ShangbaizeDaoye
2020-03-13 15:46:10 +08:00
@ifconfig 这个命令把 pkg/mod 里的三方模块全更到最新了。问题刚刚解决,vscode 的工作空间我打开到了 mod 目录的上一级了,所以 import 从 src 找包没从 pkg/mod 找包。
ShangbaizeDaoye
2020-03-13 15:47:27 +08:00
@joyme 多谢,你这提醒了我,我检查了下发现是我 vscode 的工作空间打开到了 mod 目录的上一级了,所以 import 从 src 找包没从 pkg/mod 找包。
hijoker
2020-03-13 22:16:25 +08:00
goland 他不香么
useben
2020-03-13 22:25:41 +08:00
别折腾,听我的,直接上 goland
FogDong
2020-08-06 16:21:10 +08:00
大佬好,遇到了同样的问题。在 GitHub 上拉的一个项目里面有多个文件夹,有多个 go.mod
请问这种情况的话,工作区在 mod 的上一级可以通过什么配置使 import 正常嘛

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX