问题标签 [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 - Golang:如何使用 vgo?错误:“找不到包”
我有一个项目目前在我的 GOPATH 下
/usr/local/go/src/
然后我进入我的项目根目录并运行:
go get -u golang.org/x/vgo
在我的 main.go 中,我想使用 lib httprouter,所以我在 import 语句中添加了:
import ( "github.com/julienschmidt/httprouter" )
我跑了
vgo build
- 然后,当我像往常一样开始运行服务器时,出现以下错误:
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 完成它的工作并且我可以成功运行我的服务器?
docker - 如何使用 vgo 和给定的 go.mod 下载所有依赖项?
我正在使用 vgo 和 Dockerfile 开发一个 go 项目,我希望 docker 缓存项目的依赖项,使其具有两个属性:
- 如果
go.mod
文件发生更改,将重新下载依赖项 - 如果我更改了包中的文件,但不更改
go.mod
,则不会重新下载依赖项。
现在,我这样做:
但是如果你改变了一个 go 文件,dockerfile 必须从COPY
层开始重建。
简而言之,我想做的是:
这样,如果我更改go.mod
,所有依赖项都将被下载并重建,否则,我们可以继续构建二进制文件。
我可以看到几种获得这种行为的方法,但它们都有缺点:
- 我可以复制
$GOPATH/src/mod
到 docker 容器中,但这会有很多我不需要的文件 - 我可以
vgo mod -vendor
在构建 docker 容器之前复制供应商目录,但这依赖于开发人员记住vgo mod -vendor
每次go.mod
更改时都要运行,否则应用程序将无法构建,他们必须vgo mod -vendor
在重试 docker 构建之前运行。
你能想出一种方法让我得到像我想象的那样的行为vgo install_dependencies
吗?我是否错过了这样做的 vgo 技巧?
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 存储库的最佳方法是什么?
go - 如何创建本地 VGO 应用程序模块
vgo
到目前为止,我看到的每个示例都需要您编写模块,上传它,然后创建一个新的应用程序模块来测试一个基本模块。
有没有办法通过跳过 repo 步骤来测试模块,只需向模块添加一个包 main 只是为了向控制台吐出一些东西?
我尝试创建我的虚拟模块module "example.com/m"
,向其中添加一个虚拟子包package example
,/example/testing.go
然后添加一个简单的 main.go 并尝试从我的虚拟模块导入示例包但无济于事。
如果我没有互联网,我会迷失在 vgo 工作流程中(没有它我会迷失)
docker - 如何在 Docker 容器中保留 go 1.11 模块?
我正在将 Go 1.10 应用程序迁移到 Go 1.11。这还包括从dep
to迁移以mod
管理依赖项。
由于应用程序依赖于数据库,因此我使用 adocker-compose
来设置本地开发环境。使用 Go 1.10,我只需将本地存储库(包括vendor
文件夹)安装到容器中的正确位置GOPATH
:
由于 Go 1.11 沟渠GOPATH
(使用模块时)我认为我可以执行以下操作:
这可行,但每次我docker-compose up
(或任何其他调用 Go 工具的命令)时,它都会从头开始解析并重新下载依赖关系树。当我在容器外部(即在我的本地操作系统上)运行命令时,这不会发生(而只是一次)。
如何改进设置,以便 Docker 容器保留该go
工具正在下载的模块?
go - 在 go 模块中访问本地包(go 1.11)
我正在尝试 Go 的新模块系统,但无法访问本地包。以下项目位于我的 gopath 之外的桌面上的一个文件夹中。
我的项目结构如下:
go build main.go
告诉我
go - 如何解决导入本地 Go 模块的“找不到路径 X 的模块”?
在我的 Go 项目中,我想将一些通用功能分解为一个 Go 模块,与主项目分开。为了与 go 的未来保持一致,我在 GOPATH 之外执行此操作。我不想在 GitHub 或其他任何地方发布该模块。
我将此模块导入主项目的所有尝试都导致:
我已经go mod init X
在模块的文件夹中运行。其go.mod
文件内容为:
构建或安装此模块似乎无济于事。我在 中没有发现它的迹象$GOPATH/pgk/mod
。
我尝试了各种导入语句:
import "X"
import "../x"
(模块目录的相对路径)import "../x/X"
(目录路径+模块名称)
帮助!
go - golang中的模块缓存在哪里?
当我启用 gomodules 并构建我的 go 程序时,就会下载所需的包。
但我无法在$GOPATH/src/
或 中找到它们$GOPATH/src/mod
。
它们存储在哪里?
go - 如何使用 go 模块导入非 go 目录(例如:C src/)?
我使用https://github.com/cloudflare/golz4这是 C 代码的 go 接口。所以src/
目录在 dep 树中是强制性的。
大多数依赖管理忽略那些目录(没有.go
文件),但留下一个选项来强制它。
eg: go dep has
Vgo/Go1.11 mod 会忽略这些目录,但是否有强制导入它们的选项?
谢谢
go - Go Mod 私人回购
所以我有一个私人回购,我的main.go
进口。当我进行构建时出现此错误:
找不到路径的模块
我需要为私人回购做任何特别的事情吗?我一直在谷歌搜索,找不到任何好的信息。它适用于 dep。