问题标签 [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 投票
1 回答
5421 浏览

go - Golang:如何使用 vgo?错误:“找不到包”

  1. 我有一个项目目前在我的 GOPATH 下/usr/local/go/src/

  2. 然后我进入我的项目根目录并运行:go get -u golang.org/x/vgo

  3. 在我的 main.go 中,我想使用 lib httprouter,所以我在 import 语句中添加了:

    import ( "github.com/julienschmidt/httprouter" )

  4. 我跑了vgo build

  5. 然后,当我像往常一样开始运行服务器时,出现以下错误:

main.go:8:2: cannot find package "github.com/julienschmidt/httprouter" in any of: /usr/local/go/src/github.com/julienschmidt/httprouter (from $GOROOT) /Users/myuser/go/src/github.com/julienschmidt/httprouter (from $GOPATH)

我理解错误,它似乎在 GOPATH 或 GOROOT 下搜索 httprouter。那么我是否必须做任何其他事情才能让 vgo 完成它的工作并且我可以成功运行我的服务器?

0 投票
2 回答
8338 浏览

docker - 如何使用 vgo 和给定的 go.mod 下载所有依赖项?

我正在使用 vgo 和 Dockerfile 开发一个 go 项目,我希望 docker 缓存项目的依赖项,使其具有两个属性:

  1. 如果go.mod文件发生更改,将重新下载依赖项
  2. 如果我更改了包中的文件,但不更改go.mod,则不会重新下载依赖项。

现在,我这样做:

但是如果你改变了一个 go 文件,dockerfile 必须从COPY层开始重建。

简而言之,我想做的是:

这样,如果我更改go.mod,所有依赖项都将被下载并重建,否则,我们可以继续构建二进制文件。

我可以看到几种获得这种行为的方法,但它们都有缺点:

  1. 我可以复制$GOPATH/src/mod到 docker 容器中,但这会有很多我不需要的文件
  2. 我可以vgo mod -vendor在构建 docker 容器之前复制供应商目录,但这依赖于开发人员记住vgo mod -vendor每次go.mod更改时都要运行,否则应用程序将无法构建,他们必须vgo mod -vendor在重试 docker 构建之前运行。

你能想出一种方法让我得到像我想象的那样的行为vgo install_dependencies吗?我是否错过了这样做的 vgo 技巧?

0 投票
1 回答
347 浏览

git - Vgo 和私有存储库

我正在尝试将 vgo 引入我们公司的一些项目进行依赖管理,但我遇到了一些与私有存储库相关的问题。

假设我们有以下代码结构:

去/src/companyName/projectA/

去/src/companyName/projectB/

去/src/companyName/projectC/

这三个项目都有不同的 git 存储库,并且 projectA 导入了 projectB。

使用正常go build方法,只要我们有这些目录(在 git 下),一切正常,但是我们不能让它与 vgo 包装器一起使用。

vgo build引发以下错误时:

companyName/projectA/ 找不到提供包 companyName/projectB/ 的模块

哪种有意义,因为 vgo get -v我可以看到 vgo 尝试从中获取元标记,而这些元标记https://companyName无法针对公司政策公开。

告诉 vgo 使用文件系统内容(如果源文件已经存在)或为某些导入路径指定 git 存储库的最佳方法是什么?

0 投票
1 回答
268 浏览

go - 如何创建本地 VGO 应用程序模块

vgo到目前为止,我看到的每个示例都需要您编写模块,上传它,然后创建一个新的应用程序模块来测试一个基本模块。

有没有办法通过跳过 repo 步骤来测试模块,只需向模块添加一个包 main 只是为了向控制台吐出一些东西?

我尝试创建我的虚拟模块module "example.com/m",向其中添加一个虚拟子包package example/example/testing.go然后添加一个简单的 main.go 并尝试从我的虚拟模块导入示例包但无济于事。

如果我没有互联网,我会迷失在 vgo 工作流程中(没有它我会迷失)

0 投票
2 回答
2886 浏览

docker - 如何在 Docker 容器中保留 go 1.11 模块?

我正在将 Go 1.10 应用程序迁移到 Go 1.11。这还包括从depto迁移以mod管理依赖项。

由于应用程序依赖于数据库,因此我使用 adocker-compose来设置本地开发环境。使用 Go 1.10,我只需将本地存储库(包括vendor文件夹)安装到容器中的正确位置GOPATH

由于 Go 1.11 沟渠GOPATH(使用模块时)我认为我可以执行以下操作:

这可行,但每次我docker-compose up(或任何其他调用 Go 工具的命令)时,它都会从头开始解析并重新下载依赖关系树。当我在容器外部(即在我的本地操作系统上)运行命令时,这不会发生(而只是一次)。

如何改进设置,以便 Docker 容器保留该go工具正在下载的模块?

0 投票
3 回答
97362 浏览

go - 在 go 模块中访问本地包(go 1.11)

我正在尝试 Go 的新模块系统,但无法访问本地包。以下项目位于我的 gopath 之外的桌面上的一个文件夹中。

我的项目结构如下:



go build main.go告诉我

0 投票
5 回答
28838 浏览

go - 如何解决导入本地 Go 模块的“找不到路径 X 的模块”?

在我的 Go 项目中,我想将一些通用功能分解为一个 Go 模块,与主项目分开。为了与 go 的未来保持一致,我在 GOPATH 之外执行此操作。我不想在 GitHub 或其他任何地方发布该模块。

我将此模块导入主项目的所有尝试都导致:

我已经go mod init X在模块的文件夹中运行。其go.mod文件内容为:

构建或安装此模块似乎无济于事。我在 中没有发现它的迹象$GOPATH/pgk/mod

我尝试了各种导入语句:

帮助!

0 投票
6 回答
25164 浏览

go - golang中的模块缓存在哪里?

当我启用 gomodules 并构建我的 go 程序时,就会下载所需的包。

但我无法在$GOPATH/src/或 中找到它们$GOPATH/src/mod

它们存储在哪里?

0 投票
1 回答
121 浏览

go - 如何使用 go 模块导入非 go 目录(例如:C src/)?

我使用https://github.com/cloudflare/golz4这是 C 代码的 go 接口。所以src/目录在 dep 树中是强制性的。

大多数依赖管理忽略那些目录(没有.go文件),但留下一个选项来强制它。

eg: go dep has

Vgo/Go1.11 mod 会忽略这些目录,但是否有强制导入它们的选项?

谢谢

0 投票
4 回答
9457 浏览

go - Go Mod 私人回购

所以我有一个私人回购,我的main.go进口。当我进行构建时出现此错误:

找不到路径的模块

我需要为私人回购做任何特别的事情吗?我一直在谷歌搜索,找不到任何好的信息。它适用于 dep。