其他
基于Gin框架的热加载方案,大大提高开发效率!
在开发环境中,每当我们修改代码,都需要停止,然后重新启动服务来看效果,这无疑会增加我们的开发时间和复杂性。为解决这个问题,我将引入一个开发时很实用的特性——热加载,它可以使您在代码修改后实时看到修改情况,而无需重新启动应用程序。目前,Gin Web 开发框架提供了这个功能,以下是如何使用它的全面指南。
基于fresh的热加载
Fresh 是一个用于编写 web 应用程序的热加载工具,通过监控源文件变动实现。你可以通过如下步骤来使用它:
安装 fresh:
$ go get github.com/pilu/fresh
配置 runner.conf 文件:
root: ./
tmp_path: ./tmp
build_name: runner-build
build_log: runner-build-errors.log
valid_ext: .go, .tpl, .tmpl, .html
no_rebuild_ext: .tpl, .tmpl, .html
ignored: assets, tmp
build_delay: 600
colors: 1
log_color_main: cyan
log_color_build: yellow
log_color_runner: green
log_color_watcher: magenta
log_color_app:
在你的项目根目录下运行 fresh:
$ fresh
当您对项目中的任何 Go 文件进行更改并保存时,fresh 将自动重新编译并重新启动应用程序,只需要刷新页面就能看到更改。
使用air实现的热重载
对于使用 Go Modules 的项目,一个更为推荐的工具是 air。
全局安装 air:
$ go get -u github.com/cosmtrek/air
创建 .air.toml 配置文件:
# .air.toml
[build]
cmd = "go build -o ./tmp/main ."
bin = "tmp/main"
full_bin = "APP_ENV=dev ./tmp/main"
include_ext = ["go", "tpl", "tmpl", "html"]
exclude_dir = ["assets", "tmp", "vendor"]
delay = 1000
[log]
level = "debug"
在项目根目录下运行 air:
$ air
您可以查询 air 文档了解更多自定义配置选项。
结语
仔细配置并使用热加载可以大大提升我们的开发效率,无论选择 fresh 还是 air,都能根据自身需求对热加载行为进行深度定制。使用这些工具并配合 gin 框架可以实现灵活且易于维护的 web 应用开发。