Maison >développement back-end >Golang >Partagez 5 façons de recharger automatiquement les programmes Go lorsque les fichiers changent
Cet article suppose que le compilateur Partagez 5 façons de recharger automatiquement les programmes Go lorsque les fichiers changent a été installé et que le chemin a été ajouté à la variable d'environnement PATH. GOPATH/bin
package mainimport ( "net/http")func main() { http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, World")) }) http.ListenAndServe(":5000", nil)}
go get -u github.com/cosmtrek/airEnsuite, créez le fichier de configuration Air
dans le répertoire racine de votre projet. .air.conf
# .air.conf # toml配置文件来源于 [Air](https://github.com/cosmtrek/air)# 工作区间 # .(当前目录)或绝对路径, 注意这些目录都在根目录下面.root = "." tmp_dir = "tmp"[build]# 只是普通的shell命令。 可以使用`make`。 cmd = "go build -o ./tmp/main ."# `cmd`配置命令输出的二进制文件的位置。 bin = "tmp/main"# 自定义二进制输出。 full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"# 监听的文件扩展后缀列表。 include_ext = ["go", "tpl", "tmpl", "html"]# 忽略这些文件扩展名或目录。 exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]# 如果指定,则监听包含这些文件。 include_dir = []# 忽略文件列表.exclude_file = []# 如果文件修改太频繁,则不必在每次修改时都立刻触发构建,设置触发等待时间。 delay = 1000 # ms # 发生编译错误时,是否停止旧的二进制程序。 stop_on_error = true# 该日志文件放置在tmp_dir中。 log = "air_errors.log"[log]# 日志是否显示时间 time = false[color]# 自定义每类输出的颜色。 如果找不到这个颜色,使用原本的日志输出演示。 main = "magenta"watcher = "cyan"build = "yellow"runner = "green"[misc]# 退出时是否删除临时目录 clean_on_exit = trueLa configuration est simple et claire, veuillez l'ajuster en fonction de la situation de votre projet. Enfin, au lieu d'utiliser la commande
habituelle pour exécuter un programme Partagez 5 façons de recharger automatiquement les programmes Go lorsque les fichiers changent, utilisez la commande go run
pour démarrer le programme. air
est livrée avec la commande Air installée et la variable d'environnement GOPATH est définie sur cosmtrek/air
. /go
docker run -it --rm -w <working_dir> -v <project_folder>:<mount_point> -p <host_port>:<container_port> <image_name></image_name></container_port></host_port></mount_point></project_folder></working_dir>Dans mon cas, je devais exécuter la commande suivante :
docker run -it --rm -w /go/src/github.com/praveen001/live-reloading -v /go/src/github.com/praveen001/live-reloading:/go/src/github.com/praveen001/live-reloading -p 5000:5000 cosmtrek/air
Explication :
Utilisez le paramètre -v pour monter le répertoire du projet dans le répertoire /home/praveen/go/src/github.com/praveen001/live-reloading
dans le GOPATH à l'intérieur du conteneur. /go/src/github.com/praveen001/live-reloading
-v /home/praveen/go/src/github.com/praveen001/live-reloading:/go/src/github.com/praveen001/live-reloadingUtilisez le paramètre
pour spécifier le répertoire de montage comme répertoire de travail. -w
-w /go/src/github.com/praveen001/live-reloadingLe serveur Web écoute sur le port 5000, le port du conteneur 5000 doit donc être exposé au port hôte 5000 à l'aide de l'indicateur
. -p
-p 5000:5000Enfin, spécifiez le nom de l'image Docker
. cosmtrek / air
go get github.com/codegangsta/ginAu lieu d'utiliser la commande
habituelle pour exécuter l'application, utilisez la commande go run main.go
. gin
a demandé à Gin d'écouter sur le port 5000 et le paramètre --appPort
a demandé au proxy Gin d'écouter sur le port 3000. --port
gin --appPort 5000 --port 3000Utilisez maintenant l'adresse
pour accéder au programme Gin.http://localhost:3000
, par exemple : --excludeDir
gin --appPort 5000 --port 3000 --excludeDir ./frontendSi vous utilisez Gin pour charger un programme qui ne démarre pas la surveillance des ports, vous devez utiliser le paramètre
. Mais Gin ira toujours au port 5000. --immediate
pour définir la commande de lancement. --exec
npm install -g nodemonMaintenant, nous pouvons utiliser Nodemon pour exécuter le serveur Web. en exécutant la commande suivante :
nodemon --exec go run main.go --signal SIGTERMSi vous souhaitez configurer Nodemon, créez un fichier de configuration
dans le répertoire racine de votre projet. Exemple de fichier de configuration fonctionnel completnodemon.json
go get github.com/pilu/freshAu lieu d'utiliser la commande
habituelle pour exécuter l'application, utilisez la commande go run main.go
. fresh
freshPour configurer Fresh, vous devez créer un fichier de configuration
dans le répertoire racine de votre projet. 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: 600colors: 1log_color_main: cyan log_color_build: yellow log_color_runner: green log_color_watcher: magenta log_color_app:
Adresse d'origine : https ://techinscribe.com/5-ways-to-live-reloading-go-applications/
Adresse de traduction : https://learnku.com/go/t/51189
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!