问题标签 [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.

0 投票
0 回答
271 浏览

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 并使模块管理更容易...... ??

0 投票
1 回答
6864 浏览

go - 使用 VGO 和 go.mod 找不到 Go 模块

我正在使用版本化的 Go 命令来管理我的供应商,一切正常,但是当我运行go build它时找不到我的本地包

我已经在我的内部设置了模块根目录go.mod,但仍然出现错误

构建 foo:找不到路径的模块

项目拱门就像

所以我的go.mod样子

我关注了https://research.swtch.com/vgo-tour但我不明白为什么这不起作用。

我的 Go 版本是1.11,当我在外面尝试时,foo文件夹在我的里面,这甚至不起作用。GOPATHGOPATH

我唯一让它工作的时候就是在做

但没有找到其他 2 个包,我得到与上面相同的错误。

我错过了什么还是必须更改我提供的模块路径?

0 投票
0 回答
764 浏览

go - 如何导入其他项目的子模块

我正在尝试导入以下 git 项目github.com/tebeka/selenium

当我使用标准的 Go 依赖管理时,它就像go get github.com/tebeka/selenium, 然后

但是,当我尝试对 vgo(模块)做同样的事情时,我收到以下错误:

Go mod 生成以下 go.mod 文件

0 投票
2 回答
1258 浏览

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/...只是一个模块的名称

在此处输入图像描述

0 投票
2 回答
42592 浏览

go - 如何使用 go modules 删除已安装的包

我已经使用 go modules 安装了一个包(go get in Go 1.13),现在我想删除它。在文档中对此一无所知,在go get docu中也没有。

手动从 go.mod 中删除包并不能解决问题,因此它仍保留在 go.sum 中。

我应该如何以干净的方式删除包裹?

0 投票
1 回答
70 浏览

go - 使用本地 go 依赖项最方便的方法是什么?

我想知道如何使用本地图书馆。假设我想并行开发两个 vgo 项目,一个my-project和一个my-utilmy-project. 当然my-util可以在远程存储库中使用,但是由于将我在此处的所有更改提交到主分支中只是为了使它们在 中可用(和可测试)是不可行的my-project,所以我想使用本地版本来my-util代替。类似于mvn clean installJava 中的 good old。

我认为这必须通过replace指令来实现。但这意味着我需要以一种我以后不想提交的方式来操纵我go.mod的 in 。除了在提交之前删除我的所有指令并在之后重新添加它们my-project之外,有没有办法解决这个问题?replace

是否有类似 a 的东西go_local.mod包含replace指令并且可以放在上面.gitignore?或者我可以定义替换的某种环境变量?或者至少是一个允许在提交时忽略replace指令的 IDE?go.mod

还是我采取了错误的方法,replace在我的情况下是否有更方便的替代方法?