Comandos
Portas
Se a porta preferida estiver ocupada, o launcher usa a próxima porta livre e imprime a URL correta no terminal. A abertura automática das abas pode ser desligada com
FORT_OPEN_BROWSER=false.
npm run quality executa:
- lint de JavaScript;
- lint de CSS;
- validação de HTML;
- formatação;
- TypeScript;
- gates de arquitetura;
- build.
Otimização de imagens
Os banners públicos são otimizados automaticamente para WebP antes de rodar a aplicação e antes do build.src/site/banner-assets.json, gera os arquivos otimizados em public/assets/generated e mantém o código consumindo as URLs geradas. A pasta public/assets/generated não entra no Git porque é artefato de build. A escolha de qual marca e quais banners públicos aparecem continua sendo feita em runtime pelo tenant resolvido para o host.
A troca de banners deve seguir dois cenários:
- Para atualizar banners da marca FortCard, substitua os arquivos de origem declarados em
src/site/banner-assets.jsone rodenpm run assets:optimize. - Para publicar um tenant público, cadastre a configuração de domínio, cores, logos, favicon, banners e produtos habilitados conforme o guia de logos, cores e banners.
Gates de arquitetura
O projeto valida:- layout de pastas;
- contrato de rotas;
- fronteiras entre domínios;
- escopo de white label;
- referências em documentação;
- higiene de entrega;
- build final.
Critério de aceite
Antes de publicar ou integrar:- Rodar
npm run quality. - Rodar
npm run docs:check. - Verificar rotas principais no navegador.
- Confirmar que dados demonstrativos estão isolados ou desativados para a integração.
- Confirmar que assets novos foram otimizados e que o host correto resolve a marca pública esperada.
- Confirmar que os adaptadores do backend preservam contratos de componentes, rotas e estados de tela.
Escopo público
O white label troca somente tokens, logos, favicon, banners e produtos habilitados das superfícies públicas do Site, das páginas de produto e das páginas institucionais. O rodapé legal FortCard, os Fluxos de Empréstimos e a Área Logada não mudam. Dados demonstrativos e autofill continuam removíveis pela fronteirasrc/shared/dados/mock-boundary.json e substituíveis por adaptadores de backend sem reescrever telas.