在 Visual Studio Code 中使用 go.work 时根目录的 go.mod 会提示 no go.mod file found in
标签
软件/Visual-Studio-Code
软件/Visual-Studio-Code/vscode
开发/语言/Golang
命令行/go
字数
387 字
阅读时间
2 分钟
如果你在根目录配置了 go.work
作为 monorepo
的配置文件,然后通过
shell
go mod init <module 路径>
或者直接在 go env GOPATH
目录下通过
shell
go mod init
创建 go.mod
之后,可能可以在最新版本的 Visual Studio Code 和最新版本的 Golang(我这里 v1.21.3
)看到这样的错误:
no go.mod file found in /Users/neko/Git/<路径>
你很可能遇到了这个现在依然存在的 Visual Studio Code 的 Go 插件所引用的 gopls
库的 bug,你可以试图检查 Visual Studio Code 的 Go 插件所引用的 gopls
库在 Visual Studio Code 中对应的 build.allowModfileModifications
配置选项是否开启,
通过命令面板打开 Visual Studio Code 的配置:
- 在 macOS 上按 command + option + P 可以激活命令面板
- 在 Windows 和 Linux 上按 Ctrl + Alt + P
然后输入选择下面的内容来配置全局 Visual Studio Code 配置:
Open User Settings (JSON)
当然如果你只有部分项目出错,也可以配置工作区 Visual Studio Code 配置:
Open Workspace Settings (JSON)
然后查看配置:
json
{
"gopls": {
"build.allowImplicitNetworkAccess": true,
"build.allowModfileModifications": true,
"build.buildFlags": [],
"ui.completion.usePlaceholders": true,
},
}
或者直接搜索
allowModfileModifications
然后将其配置为 false
或者注释掉来解决这个问题:
json
{
"gopls": {
"build.allowImplicitNetworkAccess": true,
"build.allowModfileModifications": true,
"build.allowModfileModifications": false,
"build.buildFlags": [],
"ui.completion.usePlaceholders": true,
},
}