Go 语言代码报错 'cannot query module due to -mod=vendor' 解决方法
在 Go 1.11 版本之后,Go 引入了 Go Modules 的特性,用于管理项目的依赖关系。在使用 Go Modules 时,如果你的项目中包含了 vendor 目录,那么在使用 go 命令时可能会遇到类似的报错信息 'cannot query module due to -mod=vendor'。
这个错误是因为 Go Modules 默认会忽略 vendor 目录中的依赖,而直接查询远程仓库。如果你想要继续使用 vendor 目录中的依赖,可以通过以下几种方式解决这个问题:
- 在项目根目录下执行以下命令,禁用 Go Modules 的 vendor 模式:
go env -w GO111MODULE=off
2. 在 go.mod 文件中添加以下配置,允许使用 vendor 目录中的依赖:
replace ( example.com/module-name => ./vendor/example.com/module-name )
3. 在 go.mod 文件中添加以下配置,指定使用 Go Modules 的 vendor 模式:
replace ( example.com/module-name => example.com/module-name vX.Y.Z )
4. 如果你的 Go 版本低于 1.14,可以尝试升级到 Go 1.14 或更高版本,因为从 Go 1.14 开始,Go Modules 默认会支持 vendor 目录中的依赖。
这些解决方法中,推荐使用前两种方式,因为它们更加灵活和通用。你可以根据自己的项目需求选择适合的方法来解决问题。
原文地址: https://www.cveoy.top/t/topic/pkfp 著作权归作者所有。请勿转载和采集!