Capítulo 1: Introdução ao Live Reloading
O que é Live Reloading?
Live reloading é um recurso que permite que o seu ambiente de desenvolvimento observe as alterações no seu código e recarregue automaticamente a sua aplicação. Ao salvar um arquivo, a ferramenta de live reload detecta a alteração, reconstrói a aplicação e a reinicia. Isso poupa você do processo manual de parar o servidor, reconstruir a aplicação e reiniciá-la a cada alteração.
Benefícios do Live Reloading para o Desenvolvimento em Go
O live reloading pode acelerar significativamente o processo de desenvolvimento. Para os desenvolvedores em Go, que estão acostumados a compilar o código antes de executá-lo, o live reloading significa um fluxo de trabalho melhorado com feedback imediato. Os benefícios incluem:
- Aumento da Produtividade: Os desenvolvedores podem permanecer focados sem interrupções, pois não precisam realizar reconstruções manuais.
- Economia de Tempo: O live reloading reduz o tempo necessário para visualizar as alterações de código refletidas na aplicação em execução.
- Detecção de Erros: Reconstruções e reinicializações instantâneas permitem que os desenvolvedores detectem e corrijam erros mais rapidamente.
- Fluxo de Trabalho Simplificado: Integra-se perfeitamente ao processo de desenvolvimento, tornando-o mais suave e eficiente.
Capítulo 2: O que é Air?

O Air é uma utilidade de linha de comando projetada para fornecer capacidades de live reloading para aplicações em Go. Ele monitora as alterações no seu código-fonte e reconstrói e reinicia automaticamente a sua aplicação em Go. Isso significa que você pode se concentrar mais no desenvolvimento de funcionalidades e menos em tarefas repetitivas.
Recursos
O Air oferece uma variedade de recursos adequados para um ambiente de desenvolvimento moderno em Go:
- Reconstruções Automáticas: Detecta alterações de arquivos e aciona reconstruções.
- Comandos de Build Personalizáveis: Permite personalizar os comandos de build de acordo com as necessidades do seu projeto.
- Exclusões de Diretórios: Permite especificar diretórios a serem excluídos da observação.
- Suporte para Novos Diretórios: Pode observar novos diretórios adicionados após o início do Air.
- Logs Coloridos e Legíveis: Melhora a legibilidade dos logs de saída com codificação de cores.
- Argumentos de Linha de Comando: Campos de configuração podem ser definidos diretamente através de argumentos de linha de comando para ajustes rápidos.
Consulte o contexto fornecido pelo desenvolvedor para obter uma lista completa de recursos e funcionalidades disponíveis com o Air.
Capítulo 3: Instalando o air
3.1 Instalação via go install
Para instalar o Air usando a ferramenta Go na versão 1.18 ou superior:
go install github.com/cosmtrek/air@latest
Isso tornará o air disponível no seu GOPATH/bin.
3.2 Usando o script install.sh
Outro método é através de um script de instalação fornecido:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Após a instalação, verifique executando:
air -v
3.3 Instalações Especiais (Docker/Podman e PATH Personalizado)
Para aqueles que utilizam Docker ou Podman, há uma maneira simplificada de incluir o Air:
docker run -it --rm \
-w "/caminho/do/projeto" \
-v $(pwd):/caminho/do/projeto \
-p porta:porta \
cosmtrek/air
Substitua /path/to/project pelo caminho do seu projeto e port:port pela mapeamento de porta desejado.
Alternativamente, para uma instalação em um PATH específico:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/caminho/personalizado sh
Capítulo 4: Configurando o air para o Seu Projeto em Go
4.1 Compreendendo a Configuração .air.toml
.air.toml é o arquivo de configuração para o Air. Ele permite que você especifique configurações relacionadas ao processo de build, monitoramento de diretórios e saída de log. Aqui está uma breve visão geral das seções-chave:
-
root: Define o diretório de trabalho para o Air. -
build: Contém configurações relacionadas ao build, como comandos para executar antes/depois da construção e o comando principal de build. -
tmp_dir: O diretório onde os arquivos temporários de build são armazenados. -
log: Configura as definições do arquivo de log. -
color: Personaliza a cor de cada parte da saída do log.
4.2 Geração e Modificação do Arquivo de Configuração
Para gerar um arquivo de configuração padrão .air.toml, execute:
air init
Isso criará um arquivo .air.toml com as configurações padrão no diretório atual. Em seguida, você pode modificá-lo para atender aos requisitos do seu projeto. Para referência, você pode consultar o air_example.toml fornecido no contexto.
4.3 Sobrescrevendo Configurações com Argumentos de CLI
Para testes rápidos ou alterações simples, você pode substituir a configuração em .air.toml passando argumentos de CLI. Por exemplo:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
Essa flexibilidade permite personalizar facilmente o comportamento do Air sem alterar o arquivo de configuração.
Capítulo 5: Executando o air em seu Ambiente de Desenvolvimento
6.1 Iniciando o air em Seu Projeto
Para começar a usar o air em seu projeto, navegue até o diretório raiz do seu projeto no terminal e execute o comando air. Se um arquivo de configuração .air.toml estiver presente, o air o utilizará automaticamente. Caso contrário, ele usará as configurações padrão.
cd /caminho/do/seu_projeto
air
Dica: Se você encontrar problemas de permissão com o executável air, verifique se ele possui as permissões de execução necessárias (chmod +x $(go env GOPATH)/bin/air).
6.2 Personalizando Comandos de Compilação e Execução com o air
Você pode personalizar os comandos de compilação e execução usados pelo air modificando o arquivo de configuração .air.toml, especificamente na seção [build]. Por exemplo, para alterar o comando de compilação e especificar um arquivo binário diferente:
[build]
cmd = "go build -o ./tmp/meu-binario-customizado ."
bin = "tmp/meu-binario-customizado"
Para requisitos de compilação mais complexos, os arrays pre_cmd e post_cmd no arquivo de configuração permitem que você execute comandos antes e depois do processo de compilação, respectivamente.
Dicas: [Um exemplo completo de configuração do air] (https://github.com/cosmtrek/air/blob/master/air_example.toml "Um exemplo completo de configuração do air")
6.3 Excluindo Diretórios e Observando Alterações
O air também permite excluir diretórios da lista de monitoramento de alterações, o que pode ser útil para diretórios que contêm ativos ou dependências que não precisam acionar uma reconstrução.
Para configurar isso, atualize o campo exclude_dir em .air.toml:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
Você também pode instruir o air a incluir diretórios adicionais usando include_dir, ou observar extensões de arquivo específicas com include_ext.
Capítulo 6: Uso Avançado
6.1 Configurando o air com Contêineres Docker
Usar o air dentro de um contêiner Docker pode otimizar sua configuração de desenvolvimento, especialmente ao trabalhar com equipes. Para incluir o air em seu ambiente Docker, atualize seu Dockerfile para instalar o air e copiar o seu arquivo .air.toml para o contêiner:
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 Usando o air em um Ambiente Docker-compose
Para integrar o air em um serviço gerenciado pelo docker-compose, defina um serviço em seu arquivo docker-compose.yaml:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
Certifique-se de que a diretiva volumes está mapeando corretamente o diretório do seu projeto para o diretório de trabalho no contêiner, para que o air possa detectar alterações nos arquivos.
Capítulo 7: Solução de Problemas Comuns e Perguntas Frequentes
7.1 Corrigindo o Erro command not found: air
Se você encontrar um erro command not found: air, isso geralmente significa que o binário air não está no PATH do seu sistema. Para resolver isso, adicione o caminho dos binários do Go à variável de ambiente PATH:
export PATH=$PATH:$(go env GOPATH)/bin
7.2 Problemas em Ambientes WSL
Em um ambiente do Subsistema do Windows para Linux (WSL), certifique-se de escapar os caracteres especiais no seu arquivo .air.toml. Por exemplo, utilize \\ para escapar as barras invertidas nos caminhos dos arquivos.
7.3 Dicas sobre Compilação Rápida Sem Executar o Binário
Se você deseja que o air compile sua aplicação Go sem executá-la, defina o cmd na seção [build] do seu arquivo .air.toml como um comando de não operação (como /bin/true em sistemas baseados em Unix):
[build]
cmd = "/bin/true"
Fazendo isso, o air ainda observará as alterações nos arquivos e acionará o processo de compilação, mas não tentará executar o arquivo binário resultante.