Kapitel 1: Einführung in Live-Reloading
Was ist Live-Reloading?
Live-Reloading ist eine Funktion, die es Ihrer Entwicklungsumgebung ermöglicht, Änderungen in Ihrem Code zu überwachen und Ihre Anwendung automatisch neu zu laden. Wenn Sie eine Datei speichern, erkennt das Live-Reload-Tool die Änderung, erstellt die Anwendung neu und startet sie neu. Dadurch ersparen Sie sich den manuellen Prozess, den Server anzuhalten, die Anwendung neu zu erstellen und sie nach jeder Änderung erneut zu starten.
Vorteile des Live-Reloadins für die Go-Entwicklung
Live-Reloading kann den Entwicklungsprozess signifikant beschleunigen. Für Go-Entwickler, die daran gewöhnt sind, ihren Code zu kompilieren, bevor sie ihn ausführen, bedeutet Live-Reloading eine verbesserte Arbeitsablauf mit unmittelbarem Feedback. Die Vorteile sind:
- Gesteigerte Produktivität: Entwickler bleiben ohne Unterbrechung im Fluss, da sie keine manuellen Neuerstellungen durchführen müssen.
- Zeitersparnis: Live-Reloading verringert die Umlaufzeit, um Codeänderungen in der laufenden Anwendung zu sehen.
- Fehlererkennung: Sofortige Neuerstellungen und Neustarts ermöglichen es Entwicklern, Fehler schneller zu erkennen und zu korrigieren.
- Optimierter Arbeitsablauf: Integriert sich nahtlos in den Entwicklungsprozess und macht ihn reibungsloser und effizienter.
Kapitel 2: Was ist Air?
Air ist ein Kommandozeilen-Hilfsprogramm, das Live-Reloading-Funktionen für Go-Anwendungen bietet. Es überwacht Änderungen im Quellcode automatisch und erstellt und startet Ihre Go-Anwendung neu. Das bedeutet, dass Sie sich mehr auf die Entwicklung von Funktionen konzentrieren können und weniger auf repetitive Aufgaben.
Funktionen
Air bietet eine Reihe von Funktionen, die für eine moderne Go-Entwicklungsumgebung geeignet sind:
- Automatische Neuerstellungen: Erkennt Dateiänderungen und löst Neuerstellungen aus.
- Anpassbare Build-Befehle: Ermöglicht es Ihnen, die Build-Befehle an Ihre Projektanforderungen anzupassen.
- Ausschluss von Verzeichnissen: Ermöglicht es Ihnen, Verzeichnisse aus der Überwachung auszuschließen.
- Unterstützung für neue Verzeichnisse: Kann neue Verzeichnisse überwachen, die nach dem Start von Air hinzugefügt wurden.
- Bunte und lesbare Protokolle: Erhöht die Lesbarkeit der Ausgabeprotokolle durch Farbcodierung.
- CLI-Argumente: Konfigurationsfelder können direkt über Befehlszeilenargumente für schnelle Anpassungen festgelegt werden.
Eine vollständige Liste der Funktionen und Möglichkeiten von Air finden Sie in den bereitgestellten Entwicklerinformationen.
Kapitel 3: Installation von air
3.1 Installation über go install
Um Air mit der Go-Toolchain Version 1.18 oder höher zu installieren:
go install github.com/cosmtrek/air@latest
Dadurch wird air
in Ihrem GOPATH/bin
verfügbar gemacht.
3.2 Verwendung des install.sh
-Skripts
Eine weitere Methode ist durch ein bereitgestelltes Installations-Skript:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Nach der Installation überprüfen Sie sie, indem Sie Folgendes ausführen:
air -v
3.3 Spezielle Installationen (Docker/Podman und benutzerdefinierter Pfad)
Für diejenigen, die Docker oder Podman verwenden, gibt es eine vereinfachte Möglichkeit, Air einzubeziehen:
docker run -it --rm \
-w "/pfad/zum/projekt" \
-v $(pwd):/pfad/zum/projekt \
-p port:port \
cosmtrek/air
Ersetzen Sie /pfad/zum/projekt
durch den Pfad Ihres Projekts und port:port
durch die gewünschte Portzuordnung.
Alternativ, für eine spezifische Pfadinstallation:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/benutzerdefinierter/pfad sh
Kapitel 4: Konfiguration von air
für Ihr Go-Projekt
4.1 Verständnis der .air.toml
-Konfiguration
.air.toml
ist die Konfigurationsdatei für Air. Sie ermöglicht es Ihnen, Einstellungen im Zusammenhang mit dem Build-Prozess, der Verzeichnisüberwachung und der Protokollausgabe festzulegen. Hier ist ein kurzer Überblick über wichtige Abschnitte:
-
root
: Legt das Arbeitsverzeichnis für Air fest. -
build
: Enthält buildbezogene Einstellungen wie Befehle, die vor/nach dem Build ausgeführt werden, und den Hauptbuildbefehl. -
tmp_dir
: Das Verzeichnis, in dem temporäre Build-Dateien gespeichert werden. -
log
: Konfiguriert die Einstellungen der Protokolldatei. -
color
: Passt die Farbe jeder Teilkomponente der Protokollaufgabe an.
4.2 Generieren und Anpassen der Konfigurationsdatei
Um eine Standardkonfigurationsdatei .air.toml
zu generieren, führen Sie den Befehl aus:
air init
Dadurch wird eine .air.toml
-Datei mit den Standard-Einstellungen in Ihrem aktuellen Verzeichnis erstellt. Anschließend können Sie diese anpassen, um sie an die Anforderungen Ihres Projekts anzupassen. Zur Referenz können Sie die bereitgestellte air_example.toml
-Datei verwenden.
4.3 Konfiguration mit CLI-Argumenten überschreiben
Für schnelle Tests oder kleinere Änderungen können Sie die Konfiguration in der Datei .air.toml
durch Übergeben von CLI-Argumenten überschreiben. Zum Beispiel:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
Diese Flexibilität ermöglicht es Ihnen, das Verhalten von Air einfach anzupassen, ohne die Konfigurationsdatei zu ändern.
Kapitel 5: Ausführen von air
in Ihrer Entwicklungsumgebung
6.1 Starten von air
in Ihrem Projekt
Um mit air
in Ihrem Projekt zu starten, navigieren Sie im Terminal zum Stammverzeichnis Ihres Projekts und führen Sie den Befehl air
aus. Wenn eine Konfigurationsdatei .air.toml
vorhanden ist, verwendet air
diese automatisch. Andernfalls verwendet es die Standardeinstellungen.
cd /Pfad/zum/Ihr_Projekt
air
Tipp: Falls Sie Berechtigungsprobleme mit der air
-Ausführbaren haben, stellen Sie sicher, dass diese die erforderlichen Ausführungsberechtigungen hat (chmod +x $(go env GOPATH)/bin/air
).
6.2 Anpassen von Build- und Ausführungsbefehlen mit air
Sie können die Build- und Ausführungsbefehle, die von air
verwendet werden, anpassen, indem Sie die Konfigurationsdatei .air.toml
bearbeiten, speziell im Abschnitt [build]
. Zum Beispiel, um den Build-Befehl zu ändern und eine andere Binärdatei anzugeben:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
Für komplexere Build-Anforderungen ermöglichen Ihnen die Arrays pre_cmd
und post_cmd
in der Konfigurationsdatei, Befehle vor und nach dem Build-Prozess entsprechend auszuführen.
6.3 Ausschließen von Verzeichnissen und Beobachten von Änderungen
air
ermöglicht es Ihnen auch, Verzeichnisse von der Beobachtung von Änderungen auszuschließen, was für Verzeichnisse, die Assets oder Abhängigkeiten enthalten und keine Neukompilierung auslösen müssen, hilfreich sein kann.
Um dies zu konfigurieren, aktualisieren Sie das Feld exclude_dir
in der .air.toml
-Datei:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
Sie können auch zusätzliche Verzeichnisse mit include_dir
einbeziehen oder bestimmte Dateierweiterungen mit include_ext
beobachten.
Kapitel 6: Erweiterte Nutzung
6.1 Einrichten von air
mit Docker-Containern
Die Verwendung von air
innerhalb eines Docker-Containers kann Ihre Entwicklungsumgebung optimieren, insbesondere wenn Sie mit Teams arbeiten. Um air
in Ihre Docker-Umgebung einzubeziehen, aktualisieren Sie Ihr Dockerfile
, um air
zu installieren und Ihre .air.toml
in den Container zu kopieren:
FROM golang:1.18-alpine AS builder
RUN go install github.com/cosmtrek/air@latest
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
CMD ["air", "-c", ".air.toml"]
6.3 Verwendung von air
in einer Docker-Compose-Umgebung
Um air
in einen von docker-compose
verwalteten Dienst zu integrieren, definieren Sie einen Dienst in Ihrer docker-compose.yaml
-Datei:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
Stellen Sie sicher, dass die volumes
-Direktive Ihr Projektverzeichnis korrekt auf das Arbeitsverzeichnis im Container abbildet, damit air
Dateiänderungen erkennen kann.
Kapitel 7: Häufige Fehlerbehebung und FAQs
7.1 Beheben von Befehl nicht gefunden: air
Wenn Sie einen Fehler Befehl nicht gefunden: air
feststellen, bedeutet dies in der Regel, dass die air
-Binärdatei nicht im PATH
Ihres Systems enthalten ist. Um dies zu beheben, fügen Sie den Pfad zu den Go-Binärdateien Ihrer Umgebungsvariablen PATH
hinzu:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 Probleme in WSL-Umgebungen
In einer Windows Subsystem for Linux (WSL)-Umgebung sollten Sie sicherstellen, dass Sie spezielle Zeichen in Ihrer .air.toml
escapen. Verwenden Sie beispielsweise \\
, um Backslashes in Dateipfaden zu escapen.
7.3 Tipps zur heißen Kompilierung ohne Ausführen der Binärdatei
Wenn Sie möchten, dass air
Ihre Go-Anwendung kompiliert, ohne sie auszuführen, setzen Sie das cmd
im [build]
-Abschnitt Ihrer .air.toml
auf einen Nichtausführungsbefehl (z. B. /bin/true
auf Unix-basierten Systemen):
[build]
cmd = "/bin/true"
Durch dieses Vorgehen beobachtet air
weiterhin Dateiänderungen und löst den Kompilierungsvorgang aus, ohne jedoch zu versuchen, die resultierende Binärdatei auszuführen.