对于生产环境,我可以接受golang不能热插拔。但是对于开发模式,我是否必须重新编译整个项目,并重新启动服务器,甚至只修改1行代码?有没有办法快速热插拔代码检查结果进行调试?
您使用或创建一个观察程序进程来查找更改,当它识别到更改时将重新编译并重新启动服务器。
以下是一些例子。我一直使用 Beego 并bee在开发过程中重建我的服务器。
杜松子酒
gin是一个简单的命令行实用程序,用于实时重新加载 Go Web 应用程序。只需在您的应用程序目录中运行,您的网络应用程序将作为代理gin提供服务。当检测到更改时,将自动重新编译您的代码。您的应用程序将在下次收到 HTTP 请求时重新启动。gingin
新鲜的
Fresh 将监视文件事件,每次创建/修改/删除文件时,它都会构建并重新启动应用程序。如果 go build 返回错误,它会将其记录在 tmp 文件夹中。
Fresh 特别适用于 Traffic、Martini 和 gocraft/web。
蜜蜂
Beego Web 框架也做到了这一点。这是在bee运行 Beego 的 CLI 工具中实现的。
bee默认情况下将监视所有项目目录,并且可以选择监视该vendor目录。