问题标签 [vgo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何在 Go 1.11+ for Golang 中使用 GOPATH 之外的整体 repo 架构共享本地模块
上下文:我们使用的是单体存储库架构。这意味着我们有一个包含许多项目的大型 github 存储库,每个项目都使用自己的 ui、node、go 等技术堆栈。
在 go_common 中,我们有用于所有 go 项目的通用代码,例如日志记录、数据库连接、我们的模式/模型作为结构等。我们使用 Go 1.11 并在 go.mod 中声明模块。我们在 GOPATH 之外也有整个工作区和项目。我们不希望任何供应商/第 3 方在我们的 repo 中下载模块,类似于我们在 node.js 项目中的 .gitignore node_modules。所以 go-get 正在按预期将供应商模块下载到 GOPATH src/pkg ,并且可以将它们导入到任何 go 项目中。
但是,我们无法让导入引用 go_common 的模块工作。我们尝试在 go_common 中执行 go build 和 go install,它在 GOPATH/bin 中创建了一个二进制文件,但这并没有帮助它实际上可以引用。有没有一种标准的方法来做到这一点,特别是现在 Go 1.11 和 vgo 集成假设不依赖 GOPATH 并使模块管理更容易...... ??
go - 使用 VGO 和 go.mod 找不到 Go 模块
我正在使用版本化的 Go 命令来管理我的供应商,一切正常,但是当我运行go build
它时找不到我的本地包
我已经在我的内部设置了模块根目录go.mod
,但仍然出现错误
构建 foo:找不到路径的模块
项目拱门就像
所以我的go.mod
样子
我关注了https://research.swtch.com/vgo-tour但我不明白为什么这不起作用。
我的 Go 版本是1.11
,当我在外面尝试时,foo
文件夹在我的里面,这甚至不起作用。GOPATH
GOPATH
我唯一让它工作的时候就是在做
但没有找到其他 2 个包,我得到与上面相同的错误。
我错过了什么还是必须更改我提供的模块路径?
go - 如何导入其他项目的子模块
我正在尝试导入以下 git 项目github.com/tebeka/selenium
当我使用标准的 Go 依赖管理时,它就像go get github.com/tebeka/selenium
, 然后
但是,当我尝试对 vgo(模块)做同样的事情时,我收到以下错误:
Go mod 生成以下 go.mod 文件
go - 在 Goland IDE 中导入本地 Go 模块
在内部导入(使用)go 模块的正确方法是什么?
例如:
通过以下方式创建新模块:go mod init example.com/my-project
(example.com 或其他不存在的域)
并在同一个项目中使用它:
此示例取自Let's Go书(但极其简化)
问题:
我正在使用 Goland,它无法识别此本地模块。Goland 建议我使用go get -t example.com/my-project/package
命令。但example.com/...
只是一个模块的名称
go - 如何使用 go modules 删除已安装的包
我已经使用 go modules 安装了一个包(go get in Go 1.13),现在我想删除它。在文档中对此一无所知,在go get docu中也没有。
手动从 go.mod 中删除包并不能解决问题,因此它仍保留在 go.sum 中。
我应该如何以干净的方式删除包裹?
go - 使用本地 go 依赖项最方便的方法是什么?
我想知道如何使用本地图书馆。假设我想并行开发两个 vgo 项目,一个my-project
和一个my-util
由my-project
. 当然my-util
可以在远程存储库中使用,但是由于将我在此处的所有更改提交到主分支中只是为了使它们在 中可用(和可测试)是不可行的my-project
,所以我想使用本地版本来my-util
代替。类似于mvn clean install
Java 中的 good old。
我认为这必须通过replace
指令来实现。但这意味着我需要以一种我以后不想提交的方式来操纵我go.mod
的 in 。除了在提交之前删除我的所有指令并在之后重新添加它们my-project
之外,有没有办法解决这个问题?replace
是否有类似 a 的东西go_local.mod
包含replace
指令并且可以放在上面.gitignore
?或者我可以定义替换的某种环境变量?或者至少是一个允许在提交时忽略replace
指令的 IDE?go.mod
还是我采取了错误的方法,replace
在我的情况下是否有更方便的替代方法?