首页 >后端开发 >Golang >如何在文件更改时自动重新编译和重新加载我的 Go 服务器?

如何在文件更改时自动重新编译和重新加载我的 Go 服务器?

Barbara Streisand
Barbara Streisand原创
2024-12-23 06:38:13634浏览

How Can I Auto-Recompile and Reload My Go Server on File Changes?

文件更改时自动重新编译和重新加载 Go 服务器

每当代码库发生更改时,开发人员经常需要自动重新编译和重新加载 Go 服务器。这可确保最新代码始终运行,无需手动干预。

解决此问题的一种尝试是使用 Ruby 生态系统中的 Guard 工具来监视 .go 文件中的更改。然而,由于该工具未能正确地将 foo 进程发送到后台,而是导致无限期挂起,因此出现了问题。

使用 Nodemon 的跨平台解决方案

另一种跨平台解决方案与GNU/Linux和Mac兼容的平台是利用Nodemon。该工具提供自动文件更改检测和可配置的命令执行机制。

要实现此解决方案:

  1. 使用 npm i -g nodemon 全局安装 Nodemon。
  2. 导航到代码目录并运行以下命令命令:
nodemon --watch './**/*.go' --signal SIGTERM --exec 'go' run cmd/MyProgram/main.go

说明:

  • --watch './**/*.go': 指定递归监控当前所有.go文件目录和子目录。
  • --signal SIGTERM:指示 Nodemon 向以下目录发送 SIGTERM 信号每当检测到更改时运行的进程。
  • --exec 'go' run cmd/MyProgram/main.go:定义收到 SIGTERM 信号后将执行的命令。

每当修改任何 .go 文件时,此脚本都会自动重新编译并重新加载您的 Go 服务器,从而提供无缝且高效的开发工作流程。

以上是如何在文件更改时自动重新编译和重新加载我的 Go 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn