2017-08-14 106 views
3

我来自Node.js,我习惯于添加所有模块,然后在克隆我的包时只需要去npm install在Golang中相当于package.json

这和Go有什么相同之处?我有几个导入程序,不希望人们使用我的软件包时不得不手动安装它。

我也不确定我是否创建了一个简单的Go应用程序,只需package main,如果允许人们只需go get。我真的拿起了回购共享的方式像Node.js

+2

指https://github.com/golang/go/wiki/PackageManagementTools – ymonad

+2

去拿-v -t/...会递归安装所有进口。是的,这是连续三个点后第一个点没有空格 –

回答

1

基本上你应该看看vendoring。有一些工具可以帮助您进行版本控制。就我个人而言,我使用的只是一个小工具,它可以将引用的包作为git子模块“获取”到供应商文件夹中。所以,如果任何人检查我的回购,他们只是做git submodule update --init --recursive。包版本可以在相应的子模块中指定为git commit id。

还有一些工具可以让你在一个文件中维护代码,检查出here

2

这和Go有什么等价的?我有几个导入程序,不希望人们使用我的软件包时不得不手动安装它。

你不需要做任何事情。人们不必手动安装您导入的软件包。当有人这样做时

go get github.com/FrickeFresh/awesome 

您导入到您的真棒包中的所有依赖关系将根据需要自动下载。

去拿跳过默认测试文件,但用户可以通过包括-t下载那些过于:

go get -t github.com/FrickeFresh/awesome 

但是,这不是你需要担心的东西。

如果您想深入研究特定版本的依赖关系,可以使用许多文章/工具。该官方工具出发:

https://github.com/golang/dep

+0

https://github.com/FrickeFresh/awesome - >页面未找到404请编辑您的答案与正确的链接 – muthukumar