Live Reloading in Go

Wie ich mit Air meine Go-Programme bei jeder Änderung automatisch neu starten lasse.

Live Reloading in Go

Mich stört es, nach jeder kleinen Änderung im Code das Programm von Hand zu stoppen und neu zu starten. Vor allem, wenn man mitten in einem Tutorial ist und häufig Änderungen macht. Ich möchte speichern und sofort sehen, was passiert. Genau dafür gibt es Live Reloading: Sobald sich eine Quelldatei ändert, startet die Anwendung von selbst neu.

Aus der Frontend-Entwicklung kennt man das schon lange. Für Go verwende ich dafür Air. Ich starte es einmal im Projektordner und kann mich danach ganz auf den Code konzentrieren.

Installation

Air setzt mindestens Go 1.25 voraus. Deshalb prüfe ich zuerst meine Go-Version und installiere Air dann mit go install:

go version
// go version go1.25.x linux/amd64

go install github.com/air-verse/air@latest

Wenn der Befehl air danach nicht gefunden wird, fehlt das Go-Bin-Verzeichnis im PATH:

export PATH="$PATH:$(go env GOPATH)/bin"

Ein kleines Testprojekt

Zum Ausprobieren lege ich mir ein kleines Projekt an:

mkdir air-example && cd $_
go mod init example/air
touch main.go

code .

In die main.go kommt ein einfaches Hello World:

1package main
2
3import (
4    "fmt"
5)
6
7func main() {
8    fmt.Println("Hello Air!")
9}

Air in Aktion

Im Projektordner gebe ich jetzt einfach air ein. Air baut das Programm, startet es, und im Terminal erscheint Hello Air!.

Danach ändere ich den Text in Hello, Air!! und speichere die Datei. Air bemerkt die Änderung, baut das Programm neu und zeigt sofort die neue Ausgabe. Mehr ist es im Grunde nicht.

Bei Kommandozeilenprogrammen gab es allerdings einen Haken: Eingaben über Scanf hat Air zumindest in Version 1.51.0 nicht unterstützt. Bei Webanwendungen und Services spielt das keine Rolle, und gerade dort ist Air besonders praktisch.

Konfiguration

Wenn ich mehr einstellen möchte, lege ich mir eine .air.toml an:

air init

Welche Optionen es gibt, zeigt die Beispielkonfiguration.

Übrigens: Der tmp-Ordner, der nach dem Start im Projekt auftaucht, stammt von Air. Darin liegt das kompilierte Programm. Auch dieser Pfad lässt sich in der TOML-Datei anpassen.

Fazit

Air ist schnell eingerichtet und nimmt mir eine lästige Kleinigkeit ab. Ich speichere, warte einen Moment und sehe das Ergebnis. Gerade beim Durcharbeiten von Tutorials macht das für mich einen großen Unterschied. Wenn du in Go entwickelst, probier es ruhig mal aus.

Reply to this post by email

Nach oben