美文网首页PHP经验分享程序员
【轻知识】go开发,装个beego,安装下vscode

【轻知识】go开发,装个beego,安装下vscode

作者: 言十年 | 来源:发表于2019-01-02 20:55 被阅读14次

    今天当我完成一个小地方的改动时。我静静坐下来,想把windows环境弄好。也回顾下beego的开发。之前我用linux虚拟机的开发环境。不方便,起初我认为需求少,写不了太多,再加上,没有IDE,能让我更熟悉代码。想法是不对的,还是需要IDE提升开发效率,虽然你会开发,但是IDE还是会让你更加记得清楚。

    windows
    命令行环境用的CMD、GitBash
    编辑器 vscode 1.30.1
    go version 1.8.3

    装个beego

    设置环境变量

    GOROOT go的安装目录

    GOBIN go的bin目录(存放编译后可执行文件,比如:安装beego框架的bee工具,bee执行文件会放到这里)

    GOPATH 工作空间

    比如我把:GOPATH设置成了

    export GOPATH=/f/iProject/gopath #用这种方式可以灵活设置GOPATH。
    

    安装框架

    go get github.com/astaxie/beego

    安装bee工具

    image.png

    创建项目

    blog项目

    bee new blog

    跑起来

    bee run,看到如下一行

     http server Running on http://:8080
    

    修改端口号

    额,由于我本地装了jekins ,它用的8080端口,我没有看到beego页面。另外8080也有可能是tomcat的端口。

    那,最好别跟流行的端口重复,比如我们用1010。

    ctrl+shift+f(也可以点放大镜) 搜 8080,能看到两个conf文件app.confconfig.go。能看出来我们改app.conf,这个文件是应用配置文件。config.go是框架配置文件。我们凭多年使用框架的嗅觉就能知道改app.conf了。

    app.conf文件内容

    appname = blog
    httpport = 8080
    runmode = dev
    

    改成 1010即可。再次bee run

    ok,我们访问到了

    http://127.0.0.1:1010/

    Ctrl+Space

    有些人找不到settings.json。在你的右下角齿轮点击,选择设置。在设置界面不同版本可能界面不一样。我的版本,在右上角{},找到这一对括号,点击即可。

    安装vscode go扩展

    ctrl+shift+x 搜 go

    image.png

    安装完,右下角会提示你安装一些工具。点击install all

    Installing 9 tools at F:\iProject\gopath\bin
      gocode
      gopkgs
      go-outline
      go-symbols
      guru
      gorename
      dlv
      godef
      goreturns
    

    这些小工具是干啥的。

    名称 作用
    github.com/nsf/gocode golang 语言提示
    github.com/uudashr/gopkgs/cmd/gopkgs gopkg是提供可以导入的可用go包列表的工具
    github.com/ramya-rao-a/go-outline 用于提取go源文件中声明的JSON表示形式的简单实用程序。
    github.com/acroca/go-symbols 用于从go source树中提取包符号的JSON表示的实用程序。如果名为src的目录位于该目录下,则该目录将被遍历以获取源代码,否则将遍历整个树。
    golang.org/x/tools/cmd/guru 回答有关go源代码问题的工具
    github.com/sqs/goreturns 此工具为不完整的Go返回语句添加零值返回值,以节省编写Go时的时间
    golang.org/x/tools/cmd/gorename gorename命令对go源代码中的标识符执行精确的类型安全重命名。。
    github.com/rogpeppe/godef godef 在Go source中查找符号信息, 给定源文件中的表达式或位置

    在 安装的过程中发现只有一两个成功了,其他的失败,而且报了很多错。

    
    Installing github.com/nsf/gocode SUCCEEDED
    Installing github.com/uudashr/gopkgs/cmd/gopkgs FAILED
    Installing github.com/rogpeppe/godef FAILED
    …………………… 省略之后的报错信息
    

    为什么会下载失败呢?

    失败信息中你能看到 golang.org/x 这样的字符串。其实,需要科学上网(用代理)。OK!我之前配置过。有两种方案。

    1.在你的命令行下载。比如:git bash可以。https_proxy='127.0.0.1:1080' go get -u -v golang.org/x/tools/cmd/guru (https_proxy 为啥不是http_proxy呢?因为golang.org 是https)

    2.我们把代理配置到vscode中,那这是最方便的,以后就OK了。

     {
        ……
      "http.proxy": "http://user:pass@proxy.com:8080",
      "https.proxy": "http://user:pass@proxy.com:8080",
      "http.proxyStrictSSL": false
      ……
    }
    

    那我的就是

     "http.proxy":"127.0.0.1:1080",
     "https.proxy":"127.0.0.1:1080",
    

    配置好之后,我们点开小铃铛,哪里有vscode 通知,有之前提示你安装的信息,点击下 install all。

    image.png

    但还是发现有三个安装失败了

    Installing github.com/derekparker/delve/cmd/dlv FAILED
    Installing github.com/rogpeppe/godef FAILED
    Installing github.com/sqs/goreturns FAILED
    

    我在命令行再试一个

    $ go get -u -v  github.com/rogpeppe/godef
    github.com/rogpeppe/godef (download)
    github.com/rogpeppe/godef/vendor/golang.org/x/tools/go/internal/gcimporter
    # github.com/rogpeppe/godef/vendor/golang.org/x/tools/go/internal/gcimporter
    F:\iProject\task\src\github.com\rogpeppe\godef\vendor\golang.org\x\tools\go\internal\gcimporter\bexport.go:212: obj.IsAlias undefined (type *types.TypeName has no field or method IsAlias)
    
    

    我在这个issue(https://github.com/golang/lint/issues/421)找到了原因,1.8版本不支持。

    我在lint travis.yml看到 1.8跟1.9不在支持了。

    image.png

    不管了去官网下载了下载了go1.11.4。安装后,重新安装那些工具,ok,成功。这里注意一点重装之后GOPATH变了。但是当前的会话中都是可以用原来的。

    对了,安装完毕的都会放在GOBIN中。即使你升级go版本,里面的第三方执行文件都会在(当然装的go.exe,gofmt.exe,godoc.exe是会重新安装一份)。

    image.png

    我们想要的功能。

    ctrl+鼠标点击跳转到对应的代码。没问题有的。
    ctrl+space 提示函数的参数,ok,没问题。 这里有个细节会跟语言切换的快捷键冲突哈。在vscode 敲着个快捷键不会切换语言,但是有函数参数的提示。

    有些快捷键不好使可能是冲突的,还有一些插件的配置。可以看 《使用visual studio code开发Go程序 》

    有个细节

    安装的工具,源文件都会放到我的GOPATH下面的src中

    image.png

    安装工具的一些包都会被装到我的GOPATH下,但我只用beego的框架。go get 是安装包以及依赖。工具编译好了。那源文件删掉即可。

    参考资料:

    相关文章

      网友评论

        本文标题:【轻知识】go开发,装个beego,安装下vscode

        本文链接:https://www.haomeiwen.com/subject/fxbzlqtx.html