首頁 >後端開發 >Golang >如何在文件更改時自動重新編譯和重新加載我的 Go 伺服器?

如何在文件更改時自動重新編譯和重新加載我的 Go 伺服器?

Barbara Streisand
Barbara Streisand原創
2024-12-23 06:38:13632瀏覽

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