手头项目有有 Go 写的,但自己有段时间没有关注 Go 了,之前官方有钦定一个包管理器,现在主流的是哪个?
手头项目有有 Go 写的,但自己有段时间没有关注 Go 了,之前官方有钦定一个包管理器,现在主流的是哪个?
|
1
go mod
|
|
nimrcMar 18, 2019
2
dep
|
|
rayhyMar 18, 2019 via Android
3
Go mod。现在都开始或者已经切到这个上面了。升级一下 golang 就行。
说起来,想稍带问问 golang 现在用哪个 error 包? go2 的出来还有一段距离,但如果用 pkg/errors,可能很快就得切,还能和 go2 兼容吗? |
|
toma77Mar 18, 2019
4
我们前端用的 govendor,后端用的 go mod,前端不用 go mod 主要是前端都是 vscoder,没有提示跳转。。
|
|
reusMar 18, 2019
5
go 命令自带的
谁还用其他的就是自找麻烦 |
|
fengyjMar 18, 2019
6
go mod 啊
go1.11 开始支持了。 但还是吐槽下,go 的包管理真的垃圾 |
|
pmispigMar 18, 2019
7
什么? go 有包管理器?
|
|
8
go mod,vscode 用 LSP,不用 LSP 会非常难用
|
|
meteor957Mar 18, 2019
11
gopm
|
|
rayhyMar 18, 2019 via Android
12
|
|
HeavytigerMar 18, 2019
13
go mod + 1
|
|
kiwierMar 18, 2019
14
go dep、vgo 或者 go mod
|
|
janxinMar 18, 2019
16
@rayhy 使用 fmt 的 Errorf 功能或者 golang.org/x/xerrors,功能会在 1.13 版本中进入标准库
|
|
xfridayMar 18, 2019
17
go mod + goland
|
|
releasemeMar 18, 2019
19
@reus 如果你指的灵活性是指 安装指定 tag,commit,branch git repo 依赖,nodejs 几年前就有了,rust 应该也有
|
|
justflyMar 18, 2019
20
官方搞了 go mod,所以以后这是趋势,写代码中去不用千里迢迢跑到像 java 一样深的 GOPATH 目录下了。
但是这货有一些坑,比如默认忽略 vendor,对于 cgo 的库,用前需要 configure 根据环境的生成 c 代码的基本无解,go mod vendor 不会把他认为你用不到的文件放到 vendor 文件夹,即使他已经下载下来了,一些要 go generate 或者 cgo 的依赖文件就很麻烦 |
|
mnhkahnMar 18, 2019
22
go mod
|
|
silenceshellMar 18, 2019 via Android
23
|
|
2babMar 18, 2019
24
Go Mod,毋庸置疑。
要说 Go 的这些管理器哪里难用,其实是因为跟其他平台比,比如 Maven 和 NPM,所以才显得它太基础。 讲道理就得举个例子,比如是否可以暴露 API 让我写点脚本管理一些依赖的细节,我有 100 个直接依赖,然后带来 500 个间接依赖,可能为了兼容,我不一定就按照『优先版本高的』原则去采纳每个间接依赖,这方面 Gradle 可能就很 easy 的实现了。 |
|
haozibiMar 18, 2019
25
推荐是 go mod,但是在 Mac 下 用 go mod 管理的 VSCode 有点卡,所以我暂时用 dep
|
|
fengyjMar 18, 2019 via Android
26
@yanjinbin #21
版本号有时候太难看了,尤其是那些没有打 tag 的 git 依赖库。 没有中央仓库,想想如果依赖库的 git 仓库被删除,会产生很多问题。 对比 npm,maven,gradle,cargo,pypi,go mod 有些不办理,也不方便。期待以后的改善吧,其实可以借鉴 rust 的 cargo。听说以后会有官方中央仓库。 |
|
silenceshellMar 18, 2019
27
|
|
fengyjMar 18, 2019
28
|
|
ecrazyMar 18, 2019 via iPhone
29
go mod 比 dep 好用
|
|
littlewingMar 18, 2019 via iPhone
30
glide
|
|
simple2025Mar 18, 2019
31
@silenceshell 现在不是 2019 年吗
|
|
mason961125Mar 18, 2019
32
go mod,然后所有依赖整理到 vendor,push 的时候带着 vendor。
|
|
fivestrongMar 18, 2019 via Android
35
go 的包管理是真垃圾,感觉还没 rust 的 cargo 好用。
|
|
bllessMar 19, 2019 via Android
36
go mod 我觉得已经可以了,中心仓库对项目其实也没啥提升?依赖库被删不放心可以自己 fork 一个,用两年也没看见被删的库。包管理这种东西我真觉得够用就好,而且明明 go get 易用性实用性都很强,我敢说大部分项目 go get 就搞定了
|
|
SparetireMar 19, 2019 via Android
38
"你没有 xx 特性 /功能" "某某有也没啥提升"
"你没有 xx 特性 /功能" "够用就好" "你没有 xx 特性 /功能" "在进步,好很多了,多努力" "你为什么没有 xx 特性 /功能" "某某更烂你咋不说" 也许还会有诸如 "又不是不能用" "你是不是针对*" "太平洋又没加盖(划掉,走错片场了),开源的觉得不好用有本事你就提 PR 啊" 类似的逻辑在哪都能见到很多呢。。不过我这条回复对解决楼主问题是毫无帮助,和问题也毫不相干,只是对本帖众多回复的一个观察 |
|
OldPandaMar 19, 2019
39
[go mod]( https://github.com/golang/go/wiki/Modules) +1
|
|
40
@Sparetire 何必阴阳怪气的呢直接点名就好啊,不服可以反驳。至少目前我们自己项目用 go mod 之前用 govendor,都是把依赖直接固化在项目内。单元测试 覆盖测试 持续集成都是没有问题的。我说对项目提升不大也是建立在至少目前我们自己场景没有遇见啥坑的情况下说的。中央仓库对我上面那条场景有提升?
真要说有啥问题,一个是翻墙拉依赖,还有个引用的两个库依赖同一个不同版本的包这种。前者 goproxy.io 上面有人提过了,自己内网搭建一个代理都可以。后者写项目两年了,实际压根没遇到。所以现在到底 go 的包管理做成啥样你才会觉得够用? |
|
zqxMar 19, 2019 via Android
41
有没有人普及一下和 python 的 pip,node 的 npm 的比较
|
|
duanquanyongMar 19, 2019 via iPhone
42
go mod 很好用,而且下个版本支持中央仓库了
|
|
wweirMar 19, 2019 via iPhone
43
go mod + 自己写的透明代理方案( sower )
|
|
bllessMar 19, 2019 via Android
44
@zqx 固化依赖到项目中在我们的开发规范是很重要的一个环节,可以有效节省其他组员管理 更新 下载的时间成本。也可以规避掉一些因为版本代码不一致的隐藏 bug。
pip 我没做过固化的方案,只写过 requirements.txt 。对于不需要编译的包还好,需要编译的时候就一言难尽。 npm 固化依赖大家都知道啥叫依赖地狱了,200M 起步…不敢想象大型项目得吃多少。 其他包管理大同小异,跟 go 最大不同就是有中央仓库,版本标记比较清晰。go mod 虽然现在版本也有了,但是一些旧的包没有遵循 go mod 规范。 npm 最大区别是每个依赖都有自己的独立依赖,不知道现在有没有改进,其他包管理就不熟悉了。 |
|
5oiR5piv5YK76YC8Mar 19, 2019
45
go mod 1.11+官方自带
|
|
bruinxsMar 19, 2019
46
gx
|
|
jlkm2010Mar 19, 2019
47
go mod
|
|
index90Mar 19, 2019
48
一直觉得 G 家那种,所有依赖用最新的思路,才是正路。只是我们凡人无法理解……
|
|
cloverstdMar 19, 2019 via iPhone
50
go mod + vscode 自动补全好卡( slow )
|
|
peyppicpMar 19, 2019 via iPhone
51
我司用 govendor
vendor 也一起提交到 git |
|
karllynnMar 19, 2019
55
1.12 已经集成了。。
|
|
janxinMar 19, 2019
56
@Gea 可以使用这个工具 https://github.com/saibing/bingo,使用方法就是先安装,然后配置 vscode-go 即可。
https://github.com/saibing/bingo#vscode-go |
|
keysonaMar 19, 2019
57
go mod + goproxy
真爽。谁用谁知道.... |
|
h2eroMar 19, 2019
58
go mod
|
|
burtbaiMar 19, 2019
59
https://github.com/gogradle/gogradle 我对这个很感兴趣,虽然主要是个构建工具
|
|
straheMar 19, 2019
60
go mod + goproxy
|
|
markxMar 20, 2019
66
有点吃惊,居然有这么多人推荐 dep 甚至其他第三方的。 每个版本更新的博客还是很推荐读一读的。
|
|
hzfyjgwMar 20, 2019 via Android
67
glide 推的好少
|
|
bigpigeonMar 20, 2019
70
踩过 glide 和 module 来述苦一下
都不好使 glide 有时候的更新策略很迷,不会更新最新的包,有时候要删掉 vendor 旧包才更新 module 允许存在 2 个同样的包的不同版本,如果你这个包在 init 有共享资源就坑爹了,比如在 init 注册了一个 http 服务之类的,而且 module 在使用 etcd3.3 会有错误要手动 @none,各种奇怪问题层出不断 |
|
janxinMar 20, 2019
71
|
|
liuxin5959Mar 20, 2019
72
@toma77 Go 还有前端后端之分?
|
|
toma77Mar 20, 2019
73
@liuxin5959 是我司前端要写 go。。
|
|
homfenMar 20, 2019
75
godep 还可以
|
|
renshaojuncoolMar 20, 2019 via Android
76
推荐 go mod,趋势。现在用的 govendor,很不方便。
|
|
imkerberosMar 28, 2019
77
cargo 你值得拥有.
|