Capitolo 1: Introduzione al ricaricamento in tempo reale
Che cos'è il ricaricamento in tempo reale?
Il ricaricamento in tempo reale è una funzionalità che permette al tuo ambiente di sviluppo di monitorare le modifiche al tuo codice e ricaricare automaticamente la tua applicazione. Quando si salva un file, lo strumento di ricaricamento in tempo reale rileva la modifica, ricostruisce l'applicazione e la riavvia. Ciò ti evita il processo manuale di arrestare il server, ricostruire l'applicazione e avviarla di nuovo dopo ogni modifica.
Benefici del ricaricamento in tempo reale per lo sviluppo in Go
Il ricaricamento in tempo reale può notevolmente velocizzare il processo di sviluppo. Per gli sviluppatori Go, abituati a compilare il proprio codice prima di eseguirlo, il ricaricamento in tempo reale significa un flusso di lavoro migliorato con un feedback immediato. I vantaggi includono:
- Aumento della produttività: Gli sviluppatori possono rimanere concentrati senza interruzioni, in quanto non è necessario eseguire ricostruzioni manuali.
- Risparmio di tempo: Il ricaricamento in tempo reale riduce il tempo di attesa per vedere le modifiche al codice riflesse nell'applicazione in esecuzione.
- Rilevamento degli errori: Le ricostruzioni e riavvii istantanei consentono agli sviluppatori di rilevare e correggere gli errori più rapidamente.
- Flusso di lavoro ottimizzato: Si integra senza problemi nel processo di sviluppo, rendendolo più fluido ed efficiente.
Capitolo 2: Cos'è Air?
Air è un'utilità a riga di comando progettata per fornire capacità di ricaricamento in tempo reale per le applicazioni Go. Monitora le modifiche nel tuo codice sorgente e ricompila e riavvia automaticamente la tua applicazione Go. Ciò significa che puoi concentrarti di più nello sviluppo delle funzionalità e meno nelle attività ripetitive.
Funzionalità
Air offre una serie di funzionalità adatte a un ambiente di sviluppo Go moderno:
- Ricostruzioni automatiche: Rileva le modifiche ai file e avvia le ricostruzioni.
- Comandi di build personalizzabili: Consente di personalizzare i comandi di build in base alle esigenze del progetto.
- Esclusioni delle directory: Ti consente di specificare le directory da escludere dal monitoraggio.
- Supporto per le nuove directory: Può monitorare le nuove directory aggiunte dopo che Air è stato avviato.
- Log colorati e leggibili: Migliora la leggibilità dei log di output con la colorazione.
- Argomenti della CLI: I campi di configurazione possono essere impostati direttamente tramite argomenti a riga di comando per regolazioni rapide.
Consulta il contesto fornito dallo sviluppatore per un elenco completo delle funzionalità e delle funzionalità disponibili con Air.
Capitolo 3: Installazione di air
3.1 Installazione tramite go install
Per installare Air utilizzando la toolchain Go versione 1.18 o superiore:
go install github.com/cosmtrek/air@latest
Ciò renderà air
disponibile nel tuo GOPATH/bin
.
3.2 Utilizzo dello script install.sh
Un altro metodo è tramite uno script di installazione fornito:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Dopo l'installazione, verificala eseguendo:
air -v
3.3 Installazioni speciali (Docker/Podman e PATH personalizzato)
Per coloro che utilizzano Docker o Podman, c'è un modo ottimizzato per includere Air:
docker run -it --rm \
-w "/percorso/al/progetto" \
-v $(pwd):/percorso/al/progetto \
-p porta:porta \
cosmtrek/air
Sostituisci /percorso/al/progetto
con il percorso del tuo progetto e porta:porta
con il mapping della porta desiderato.
In alternativa, per un'installazione specifica del PATH:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/percorso/personalizzato sh
Capitolo 4: Configurazione di air
per il tuo progetto Go
4.1 Comprensione della configurazione .air.toml
.air.toml
è il file di configurazione per Air. Ti consente di specificare impostazioni relative al processo di build, al monitoraggio delle directory e all'output del log. Ecco una breve panoramica delle sezioni chiave:
-
root
: Imposta la directory di lavoro per Air. -
build
: Contiene impostazioni relative alla build come comandi da eseguire prima/dopo la build e il comando di build principale. -
tmp_dir
: La directory in cui vengono memorizzati i file temporanei di build. -
log
: Configura le impostazioni del file di log. -
color
: Personalizza il colore di ciascuna parte dell'output del log.
4.2 Generazione e Modifica del File di Configurazione
Per generare un file di configurazione predefinito .air.toml
, eseguire il comando:
air init
Questo creerà un file .air.toml
con le impostazioni predefinite nella directory corrente. È quindi possibile modificarlo per adattarlo alle esigenze del progetto. A titolo di riferimento, è possibile consultare il file air_example.toml
fornito nel contesto.
4.3 Sovrascrittura della Configurazione con Argomenti CLI
Per test rapidi o modifiche minori, è possibile sovrascrivere la configurazione in .air.toml
passando gli argomenti CLI. Ad esempio:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
Questa flessibilità consente di personalizzare facilmente il comportamento di Air senza modificare il file di configurazione.
Capitolo 5: Esecuzione di air
nel Tuo Ambiente di Sviluppo
6.1 Avvio di air
nel Tuo Progetto
Per iniziare con air
nel tuo progetto, naviga nella directory principale del tuo progetto nel terminale ed esegui il comando air
. Se è presente un file di configurazione .air.toml
, air
lo utilizzerà automaticamente. In caso contrario, utilizzerà le impostazioni predefinite.
cd /percorso/verso/tuo_progetto
air
Suggerimento: Se incontri problemi di autorizzazione con l'eseguibile air
, assicurati che abbia i necessari permessi di esecuzione (chmod +x $(go env GOPATH)/bin/air
).
6.2 Personalizzazione dei Comandi di Build e Run con air
È possibile personalizzare i comandi di build e run utilizzati da air
modificando il file di configurazione .air.toml
, in particolare nella sezione [build]
. Ad esempio, per modificare il comando di build e specificare un file binario diverso:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
Per requisiti di build più complessi, gli array pre_cmd
e post_cmd
nel file di configurazione consentono di eseguire comandi prima e dopo il processo di build, rispettivamente.
Suggerimenti: Un esempio completo di configurazione di air
6.3 Esclusione delle Directory e Monitoraggio delle Modifiche
air
consente anche di escludere directory dal monitoraggio delle modifiche, utile per directory contenenti risorse o dipendenze che non devono attivare una ricompilazione.
Per configurare ciò, aggiorna il campo exclude_dir
in .air.toml
:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
Inoltre, è possibile istruire air
a includere directory aggiuntive utilizzando include_dir
, o a monitorare determinate estensioni di file utilizzando include_ext
.
Capitolo 6: Utilizzo Avanzato
6.1 Configurazione di air
con Contenitori Docker
Utilizzare air
all'interno di un contenitore Docker può ottimizzare la configurazione di sviluppo, specialmente quando si lavora in team. Per includere air
nel tuo ambiente Docker, aggiorna il tuo Dockerfile
per installare air
e copiare il tuo .air.toml
nel contenitore:
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 Utilizzo di air
in un Ambiente Docker-compose
Per integrare air
in un servizio gestito da docker-compose
, definisci un servizio nel tuo file docker-compose.yaml
:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
Assicurati che la direttiva volumes
mappi correttamente la directory del tuo progetto alla directory di lavoro nel contenitore in modo che air
possa rilevare le modifiche ai file.
Capitolo 7: Risoluzione dei Problemi Comuni e FAQ
7.1 Risoluzione dell'Errore command not found: air
Se incontri un errore command not found: air
, significa tipicamente che l'eseguibile air
non è nel PATH
del sistema. Per risolvere questo problema, aggiungi il percorso dei binari di Go alla variabile di ambiente PATH
:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 Problemi negli ambienti WSL
In un ambiente Windows Subsystem for Linux (WSL), assicurati di eseguire l'escape dei caratteri speciali nel tuo file .air.toml
. Ad esempio, utilizza \\
per eseguire l'escape delle barre rovesciate nei percorsi dei file.
7.3 Suggerimenti sulla compilazione a caldo senza eseguire il binario
Se desideri che air
compili la tua applicazione Go senza eseguirla, imposta il cmd
nella sezione [build]
del tuo file .air.toml
su un comando di non operazione (come /bin/true
nei sistemi basati su Unix):
[build]
cmd = "/bin/true"
Fare ciò farà sì che air
osservi comunque le modifiche ai file e avvii il processo di compilazione, ma non cercherà di eseguire il file binario risultante.