1
Build_Process_Guide
Antigravity AI Agent edited this page 2026-05-11 06:00:21 +02:00

⚙️ Como Funciona o Processo de Build

Este guia descreve os detalhes internos, comandos, fluxos de compilação e versionamento do ecossistema NewWhats.


🛠️ Visão Geral do Ciclo de Compilação

O processo de compilação transforma os códigos fontes TypeScript em Javascript nativo otimizado para produção. O build é estruturado em 4 grandes etapas ordenadas:

[1. Incremento de Versão] ──► [2. Build Backend (TSC)] ──► [3. Build Plugins (TSC)] ──► [4. Build Frontend (Next.js)]

🗂️ As Etapas de Compilação em Detalhes

1️⃣ Etapa 1: Controle de Versão Semântica (v1.+1)

O script update-version.js gerencia de forma segura o registro de deploys em dois locais para serem consumidos em tempo real pelo front e back-end:

  • Arquivos Gerados: deploys.json e version.json (gravados na raiz e na pasta /public do frontend).
  • Mapeamento de Informações:
    • Incrementar a versão menor (ex: v1.0.8 para v1.0.9).
    • Incrementar o número do build de deploy (ex: build #9).
    • Capturar o hash abreviado do último commit do Git.
    • Capturar a mensagem do commit e o autor.
    • Registrar a data e hora UTC exatas da compilação.

2️⃣ Etapa 2: Compilação do Backend (TypeScript)

O backend reside em /backend.

  • Instalação de Dependências: npm install baixa e sintoniza as dependências em produção.
  • Compilação TS: npm run build executa o compilador TypeScript tsc mapeado no tsconfig.json.
  • Geração Prisma Client: npx prisma generate sintoniza os modelos de dados ORM e expõe os arquivos de tipagem estática do banco de dados na pasta node_modules/@prisma/client.
  • Destino: Todo o código transpilado é gravado na pasta /backend/dist/.

3️⃣ Etapa 3: Compilação Modular de Plugins

Como o NewWhats usa um carregador dinâmico de plugins em produção, os plugins (localizados em /plugins) devem ser compilados de forma unificada.

  • Mapeamento de Dependências: O compilador aponta para as dependências instaladas no core do backend utilizando as chaves "paths" no tsconfig.json do diretório de plugins:
    "paths": {
      "*": ["../backend/node_modules/*"]
    }
    
  • Comando de Compilação:
    /backend/node_modules/.bin/tsc -p /plugins/tsconfig.json
    
  • Arquivos Gerados: Os arquivos Javascript correspondentes (.js e .js.map) são criados dentro de cada pasta específica do plugin correspondente (ex: /plugins/UnifiedStorageProvider/index.js), que serão consumidos pelo loader do backend.

4️⃣ Etapa 4: Compilação do Frontend (Next.js)

O frontend reside em /frontend.

  • Injeção de Variáveis: O build do Next.js estaticiza parâmetros de API e URLs do servidor. Passamos a chave correspondente no disparo:
    NEXT_PUBLIC_API_URL=https://clube67.com npm run build
    
  • Compilação Next.js: O comando next build executa o bundler SWC/Webpack, minifica o HTML/CSS/JS, divide os chunks de carregamento e otimiza as páginas.
  • Destino: A pasta oculta /frontend/.next/ e a pasta /frontend/public/ recebem todos os arquivos finais estáticos prontos para renderização acelerada no navegador.

🚀 Comandos Úteis p/ Execução Manual (VPS 4)

# Entrar no backend e buildar manualmente
cd /home/deploy/stack/clube67/newwhats.local/backend
npm run build

# Gerar Prisma client manualmente
npx prisma generate

# Buildar plugins individualmente
npx tsc -p ../plugins/tsconfig.json

# Testar compilação Next.js localmente
cd ../frontend
npm run build