V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
beego
linhongye
V2EX  ›  Go 编程语言

用 go 的大家, gopls 有办法不开代理来用吗?

  •  
  •   linhongye · 2019-09-21 02:34:02 +08:00 · 7772 次点击
    这是一个创建于 805 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天更新了一下 gopls 一下子悲剧了, 就不工作了
    然后翻出去以后一下子就正常了
    翻回来又继续不正常...
    看起来 gopls 是要在线工作的, 而且连接的服务器是不行的...
    我尝试搜索了一下, 好像没有讨论这个问题的?
    不是说中国用 go 的人数全世界最多吗?.. 有同样问题的吗?

    19 条回复    2019-09-25 02:37:53 +08:00
    wweir
        1
    wweir  
       2019-09-21 05:29:02 +08:00 via Android
    请升级 go 至 1.13 ,并配置 GOPROXY
    之后,就可以感受前所未有的霜
    keyv
        2
    keyv  
       2019-09-21 06:37:33 +08:00 via iPhone
    可能是后台检索需要从网络上拉东西吧。
    madNeal
        3
    madNeal  
       2019-09-21 08:57:51 +08:00
    为什么配置了 goproxy 最近也拉不下代码呢 @wweir
    wweir
        4
    wweir  
       2019-09-21 09:03:09 +08:00 via Android
    @madNeal 请说出你的场景、做法
    madNeal
        5
    madNeal  
       2019-09-21 09:10:56 +08:00
    @wweir go get github.com/grafana/grafana

    gproxy 配置的是 https://goproxy.cn, direct

    go1.13
    missdeer
        6
    missdeer  
       2019-09-21 09:29:41 +08:00
    你的 gopls 是官方的还是第三方的?
    wweir
        7
    wweir  
       2019-09-21 09:37:48 +08:00 via Android
    @madNeal 没理解错的话,直接 go get 并不走 goproxy。
    goproxy 是用来下依赖库的,而不是下载指定 git repo。

    可以通过 goproxy 下载的东西是指定包的指定版本的压缩包,以及指定包的 meta 信息。
    用人话说就是只能下载 依赖库的 go 源码问题,并不包括 .git 目录及其它多数源码无关文件。

    而之前的 go get 的作用是下载指定包的整个 git
    wweir
        8
    wweir  
       2019-09-21 09:49:52 +08:00 via Android
    @wweir 接上条

    之前的 go get 的作用是下载指定包的整个 git 仓库到 gopath 中的指定位置,为了向前兼容,自然就没法用 goproxy 了。

    ps: 在使用 go modules 管理的 git 仓库中,go get 的作用被重新定义为:为该仓库添加指定的依赖。这样就可能正常用到 goproxy 了。

    pps: 如果你是想通过 goproxy 安装指定包编译后的二进制文件,eg:安装 gopls、grafana,可以
    wweir
        9
    wweir  
       2019-09-21 09:51:39 +08:00 via Android   ❤️ 1
    @wweir 再接
    pps: 如果你是想通过 goproxy 安装指定包编译后的二进制文件,eg:安装 gopls、grafana,可以使用我的这个辅助脚本,体验同样前所未有的爽
    codehz
        10
    codehz  
       2019-09-21 10:43:03 +08:00 via Android
    @wweir 那个,其实如果指定 GO111MOUDLE=on 并且显式指定 GOPATH 到特定目录,然后在非项目目录使用 go get 还是会用到 goproxy 的,然后也能正确安装到 gopath 里
    另外 GO 1.14 据说要默认 go module 了
    linhongye
        11
    linhongye  
    OP
       2019-09-21 14:12:03 +08:00
    @wweir #1
    你说的是安装的时候很爽吗?...
    我这边 gopls 不开代理是完全不工作啊.
    代码自动补全, 提示, 等等全没有啊...
    wweir
        12
    wweir  
       2019-09-21 15:48:37 +08:00 via Android
    @linhongye 本地缺包而已,gopls 会自动下载缺的包
    dodo2012
        13
    dodo2012  
       2019-09-21 16:17:50 +08:00
    自从用上 gopls,就没爽过
    kidlj
        14
    kidlj  
       2019-09-21 16:20:23 +08:00 via iPhone
    scnace
        15
    scnace  
       2019-09-21 17:23:06 +08:00 via Android
    @linhongye 你的使用场景是什么?本地项目里面有没有用到 go module ? GO111MODULE 设置的是什么?有没有设置 GOPATH ?有没有打开 gopls 的 log 看过? ---- 来自一位 1.13 以前经常在带 mod 和不带 mod 项目之间疯狂切换的码农的灵魂拷问
    scnace
        16
    scnace  
       2019-09-21 17:27:34 +08:00 via Android
    看了楼上的 issue 看来不是 gopls 的问题 是 vscode 的问题 ( vscode 出问题不是很正常吗.jpg
    linhongye
        17
    linhongye  
    OP
       2019-09-21 19:27:24 +08:00
    @scnace #15
    用的 vscode, 用 go mod, 设置 ON, 有 GOPATH, 没看过 log..
    crazyvv
        18
    crazyvv  
       2019-09-23 17:05:21 +08:00
    gopls 内存占用是越来越狠。。不得不定时的重启一把 vscode
    lxml
        19
    lxml  
       2019-09-25 02:37:53 +08:00
    gopls 真的很糟糕 而且开发团队看起来人也挺少的 要不说我都以为这是一个个人业务项目


    包加载非常慢
    补全也慢
    然后改包名不能识别,还得手动重启 vscode
    重命名只能在包作用域

    ……

    坑太多了
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1442 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 17:31 · PVG 01:31 · LAX 09:31 · JFK 12:31
    ♥ Do have faith in what you're doing.