The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
linhongye

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

  •  
  •   linhongye · Sep 21, 2019 · 10013 views
    This topic created in 2602 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    而之前的 go get 的作用是下载指定包的整个 git
    wweir
    wweir
    Sep 21, 2019 via Android
    8
    @wweir 接上条

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

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

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


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

    ……

    坑太多了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1383 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 20:18 · PVG 04:18 · LAX 12:18 · JFK 15:18
    ♥ Do have faith in what you're doing.