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.