Maison >développement back-end >Golang >Comment puis-je recompiler automatiquement et recharger mon serveur Go en cas de modifications de fichiers ?

Comment puis-je recompiler automatiquement et recharger mon serveur Go en cas de modifications de fichiers ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-23 06:38:13634parcourir

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

Recompilation et rechargement automatiques des serveurs Go en cas de modifications de fichiers

Les développeurs rencontrent souvent le besoin de recompiler et de recharger automatiquement leurs serveurs Go chaque fois que des modifications sont apportées à la base de code. Cela garantit que le code le plus récent est toujours exécuté sans intervention manuelle.

Une tentative pour résoudre ce problème impliquait l'utilisation de l'outil Guard de l'écosystème Ruby pour surveiller les modifications dans les fichiers .go. Cependant, des problèmes sont survenus car l'outil n'a pas réussi à envoyer correctement le processus foo en arrière-plan et a provoqué un blocage indéfini.

Une solution multiplateforme utilisant Nodemon

Une solution alternative multiplateforme plate-forme compatible avec GNU/Linux et Mac consiste à utiliser Nodemon. Cet outil fournit une détection automatique des modifications de fichiers et un mécanisme d'exécution de commandes configurable.

Pour mettre en œuvre cette solution :

  1. Installez Nodemon globalement à l'aide de npm i -g nodemon.
  2. Accédez au répertoire de code et exécutez ce qui suit command :
nodemon --watch './**/*.go' --signal SIGTERM --exec 'go' run cmd/MyProgram/main.go

Explication :

  • --watch './**/*.go' : Spécifie de surveiller tous les fichiers .go de manière récursive dans le courant répertoire et sous-répertoires.
  • --signal SIGTERM : demande à Nodemon d'envoyer un signal SIGTERM au processus en cours d'exécution chaque fois qu'un changement est détecté.
  • --exec 'go' run cmd/MyProgram/main.go : Définit la commande qui sera exécutée après réception du signal SIGTERM.

Ceci Le script recompilera et rechargera désormais automatiquement votre serveur Go chaque fois qu'un fichier .go est modifié, offrant ainsi un flux de travail de développement transparent et efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn