我将从Node.js转到Go,我习惯于添加所有模块,然后人们在克隆我的包时必须npm install
。
与Go的相同之处是什么?我有一些进口产品,并且不希望人们在使用我的包装时手动安装它。
我还不确定是否只使用package main
创建了一个简单的Go应用程序,如果它允许人们只go get
。我真的很喜欢像Node.js这样的回购共享方式
答案 0 :(得分:4)
与Go的相同之处是什么?我有一些进口产品,并且不希望人们在使用我的包装时手动安装它。
你不必做任何事情。人们不必手动安装您导入的包。有人的时候
go get github.com/FrickeFresh/awesome
您在awesome软件包中导入的所有依赖项都将根据需要自动下载。
默认情况下跳过测试文件,但用户也可以通过包含-t:
来下载它们go get -t github.com/FrickeFresh/awesome
但这不是你需要担心的事情。
如果您想深入研究销售特定版本的依赖项,可以使用许多文章/工具。 官方工具是dep:
答案 1 :(得分:1)
基本上你应该看一下vendoring。有一些工具可以帮助您进行版本控制。就我个人而言,我使用的是仇杀,这只是一个小小的工具。引用的包作为git子模块进入供应商文件夹。因此,如果有人检查我的回购,他们只需git submodule update --init --recursive
。包版本可以在相应的子模块中指定为git commit id。
还有用于在文件中维护deps的工具,请查看here。