热启动简介
热加载是指可以在不重启服务的情况下,保存后即可让更改的代码生效的一种开发模式。热加载可以显著的提升开发和调试的效率,有了热加载后,说明你不用重新再编译、再执行了。
Go 里面也有这种热加载的机制,Go 语言具部署简单、并发性好、上手快的优势,Go 的热加载小工具的选择还是挺多的,除了我们这里要说的 fresh 之外,还有 air、bee、gowatch 等。
fresh简介
Fresh是一个命令行工具,每次保存Go或模版文件时,该工具都会生成或重新启动Web应用程序。Fresh将监视文件事件,并且每次创建/修改/删除文件时,Fresh都会生成并重新启动应用程序。如果go build返回错误,它会将记录在tmp文件夹中。
fresh安装
在项目根目录使用go mod 初始化之后,运行下列指令:
go get github.com/pilu/fresh
然后在运行项目时使用 fresh 代替go run main.go 即可运行程序
常见报错
在 windows vscode 中运行fresh,只是用上述 go get 命令可能会喜提 “找不到fresh命令” 的报错,解决方案如下:
- 打开任意一处终端,用go env命令查看,如果GO111MODULE=auto,将这一行改成GO111MODULE=on。
- go install github.com/pilu/fresh@latest
- go mod init<你的项目名称>。
- go get github.com/pilu/fresh。
本质是运行go install github.com/pilu/fresh@latest 来获得 fresh.exe 文件,该文件在 GOPATH的bin目录下,要在windows命令行中运行成功运行 fresh,还要将GOPATH的bin文件夹路径放到环境变量PATH中。
完成上述操作后,在vscode的terminal中执行fresh即可跑起项目。