首页 > 其他分享 >[go-每日一库] go-gin项目使用realize实现代码、文件改动热更新

[go-每日一库] go-gin项目使用realize实现代码、文件改动热更新

时间:2022-12-06 00:12:01浏览次数:80  
标签:status name yaml 一库 go gin realize

之前用django编写web应用时,每次保存,django应用都是重新加载-热更新,最近在写gin应用,了解到golang常用的热更新可以用到fresh/gin/gowatch/bee/realize/air等,本文主要分享realize的热更新应用。

realize

举个例子,有个叫demo的gin web项目,首先是下载realize:

go get github.com/oxequa/realize
# realize这个开源项目有点老了,官方4年都没有维护,但依然比gin(与web框架不同的gin),在go get时注意在go.mod中添加下面一行:
# replace gopkg.in/urfave/cli.v2 => github.com/urfave/cli/v2 v2.2.0
 
go install github.com/oxequa/realize

.realize.yaml

在安装了realize cmd后,可以直接使用realize init完成realize初始化,或者比较常用的可以参考官方的文档,编写自己的yaml配置文件,以下以.realize.yaml做后续分享。

settings:
  files:                        # 日志记录文件设置
    outputs:
      status: false
      path: ""
      name: .r.outputs.log
    logs:
      status: false
      path: ""
      name: .r.logs.log
    errors:
      status: false
      path: ""
      name: .r.errors.log
  legacy:
    force: false                # 是否强制轮询,最好设置为true
    interval: 100ms             # 轮询间隔,可设为10s || 100ms
server:
  status: true                  # 是否监听服务
  open: false                   # 运行时是否打开浏览器
  port: 8080                    # 监听端口,根据app server的监听端口来设置
  host: http://localhost        # 监听地址/主机
schema:
- name: server               # 项目名称
  path: D:\go_dev\src\server # 项目路径
#  args:                        # run传入参数
#  - --key1=value1
#  - --key2=value2
  commands:                     # 支持的go命令,go run/go build/go install
    run:
      status: true
    install:
      status: true
    build:
      status: false
      args:
      - -race
      method: gb build
  watcher:                      # 监视文件
    extensions:                 # 监视.go/.yaml文件
    - go
    - yaml
    paths:                      # 监视的目录
    - /
    ignore:                     # 忽略某些文件
      paths:                    # 忽略文件目录名
      - .git
      - .realize
      - vendor
      - logs
    scripts:                    # 执行脚本
    - command: tskill server    # 重载时杀掉应用,win: tskill process_name || linux/macos: pkill process_name
      type: before              # 执行脚本时机,这里设置启动前

项目使用

回到项目主目录,首先realize add,然后realize start即可启动项目,可以修改监听项中的go文件或者yaml文件,就可以看到realize确实重新加载编译了应用。

标签:status,name,yaml,一库,go,gin,realize
From: https://www.cnblogs.com/davis12/p/16953971.html

相关文章

  • 使用 gvm 来快速安装或者升级 golang 版本
    gvm是golang的版本管理工具,有点类似于python的pyenv。一、安装gvmbash<<(curl-s-S-Lhttps://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gv......
  • maven-dependency-plugin unpack 使用
    maven-dependency-plugin是一个比较有用,但是大家日常使用不是很多的插件,包含的功能解析依赖(显示依赖树,解析依赖的插件)copy依赖解压copy依赖(unpack比如需要部分jar......
  • nginx 不转发 header 问题
    之前在一台ECS上搭了个nginx搞跳转服务,昨天突然发现header中自定义数据一直获取不到。因为利用nginx跳转时读取header异常,不用nginx时读取header正常。先来看看nginx.conf......
  • golang的defer使用一
    先来看例子:例子1:packagemainimport"fmt"funcrefertest()int{variintfmt.Printf("在没有调用defer之前。i的值为:%d,i的地址为:%p",i,&i)fmt.Println()d......
  • nginx412常见错误porxy_ssl_name
    Nginx反向代理问题汇总首页Nginx反向代理问题汇总  7月18,2022Nginx反向代理问题汇总作者 Zgao 在安全运维使用Nginx反向代理中出现......
  • 一文了解 Go time 包的时间常用操作
    耐心和持久胜过激烈和狂热。哈喽大家好,我是陈明勇,今天分享的知识是Gotime包的使用。如果本文对你有帮助,不妨点个赞,如果你是Go语言初学者,不妨点个关注,一起成长一起进步,......
  • 【最新】最全的Google镜像站地址
    写在前面遇到问题,有时光靠Baidu有时解决不了问题,所以需要求助Google,里面有好多国外网友的博客、StackoverFlow、GithubIssues、官方文档等等的大量一手英文资料,如果你想......
  • Navicat连接SQL Server后创建表engine语句报错
    Navicat连接SQLServer后创建表engine语句报错在Navicat16中连接了SQLServer,在数据库中用脚本创建表时设置了ENGINE=InnoDBDEFAULTCHARSET=utf8,运行时报错的解决。具......
  • AMS和Zygote通信为什么采用socket而不是Binder
    参考:为什么SystemServer进程与Zygote进程通讯采用Socket而不是Binder1、AMS、WMS等系统服务处于SystemServer进程中2、SystemServer(SystemService)与ServiceManager勿混......
  • vue-quill-editor富文本编辑器使用(带图片上传至七牛云,后端为django)
    vue-quill-editor富文本编辑器使用(带图片上传至七牛云,后端为django)1.安装vue-quill-editornpminstallvue-quill-editor-S2.引入到项目中有两种挂载方式:全局挂载......