Go热重载需借助第三方工具实现,常用方案有:1. air(最流行,配置灵活);2. fresh(轻量免配);3. inotifywait脚本(Linux简易方案);推荐使用air并纳入版本控制。
在Go语言开发中,热重载(Hot Reload)能显著提升开发效率。它能在代码保存后自动重新编译并重启服务,无需手动操作。虽然Go本身不自带热重载功能,但可以通过第三方工具轻松实现。以下是常用热重载工具的配置与使用方法。
重载air 是目前最流行的 Go 热重载工具之一,安装简单,配置灵活,支持自定义构建和运行命令。
步骤如下:
示例 .air.toml 配置:
root = "." tmp_dir = "tmp" [build] args_bin = "./tmp/main" bin = "tmp/main" cmd = "go build -o ./tmp/main ." delay = 1000 exclude_dir = ["assets", "tmp", "vendor"] exclude_file = [] exclude_regex = ["_test\\.go"] exclude_unchanged = false follow_symlink = false full_bin = "" include_ext = ["go", "tpl", "tmpl", "html"] include_file = [] kill_delay = "0s" log = "stdout" [log] main_only = false time = false [color] main = "magenta" [misc] clean_on_exit = true
启动热重载:
airfresh 是另一个轻量级热重载工具,适合快速项目接入。
fresh 默认会查找 main.go 并监听当前目录下的 .go 文件变化,自动重新编译运行,无需额外配置。
在 Linux 环境下,可结合 inotify-tools 实现简易热重载。
#!/bin/bash while inotifywait -r -e modify,create,delete .; do go run main.go done
基本上就这些。选择合适的热重载工具,能让你专注编码,不再频繁手动重启服务。