WU / DOCSMICROFRONTENDS UNIVERSAIS
PT

Doctor: diagnóstico local e remoto

Inspecione arquivos, dependências e respostas HTTP com códigos de diagnóstico e saídas para CI.

Requer WU CLI 1.2.0 e WU Framework 4.0.0 para as APIs das aplicações. Confira wu --version e as dependências do projeto.

wu info
wu doctor --json
wu doctor --url https://example.com --route /guide/ --entry /apps/cart/entry.js --json

wu info mostra a configuração efetiva. Doctor local usa o binário nativo; o remoto usa Node >=20 e faz GET sem cookies ou credenciais. Não executa JavaScript nem repara arquivos. A saída JSON não inclui ANSI ou avisos de atualização. O modo local JSON não consulta a porta 3000; a saída humana mantém essa verificação antiga.

Código Verificação
WU_D000 Projeto não encontrado.
WU_D001 Diretórios das aplicações.
WU_D002 Entrada ou build do shell.
WU_D003 Faixas consistentes e compatíveis com a versão alvo do Framework no catálogo.
WU_D004 Overrides por diretório e toolchains.
WU_D005 Colisões de portas.
WU_D006 Arquivos sensíveis na saída pública.
WU_D007 Cabeçalhos de segurança e handlers inline.
WU_D008 Orientação de verificação HTTP ou resposta local.
WU_D009 Framework usado por várias apps ausente em shared.

Relatórios incluem schemaVersion: 1, tool, mode, ok, checks, problems e diagnostics; os locais também incluem version. Cada diagnóstico tem code, severity e message. Uma categoria pode gerar vários achados. Avisos podem permanecer com saída 0; erros produzem 1. Opções inválidas ou falhas de execução remota produzem 2.

WU_D003 aceita faixas limitadas ao major do Framework no catálogo, como ^4.0.0, 4.x, 4.2.3 ou >=4 <5. Rejeita faixas incompatíveis, malformadas, vazias ou abertas a outro major, como ^3 || ^4 e >=4. As declarações do shell e das apps devem coincidir; dependências locais mantêm suas verificações de destino.

Escopo do exame remoto

--url seleciona HTTP ou HTTPS. Repita --route para páginas e --entry para módulos ou origens externas explicitamente incluídas. --timeout vale 5000 ms por resposta, incluindo o corpo, e aceita 100–30000. O exame segue referências estáticas; imports calculados e apps descobertas em execução exigem testes de navegador.

O exame limita recursos a 32, requisições a 40, redirecionamentos a 3 por recurso, respostas a 2 MiB e tempo total a 30 segundos. Uma inspeção incompleta é um erro. Os diagnósticos distinguem status HTTP, MIME incorreto, CSP inline, fallback HTML para assets, falhas de rede e origens externas omitidas. Divida sites grandes em percursos específicos.

Integridade de uma implantação

wu doctor --url https://example.com --integrity --pubkey keys/deploy.pub.json --json

--integrity verifica wu-integrity.json, criado por wu build --sign, e compara assinatura, bytes, MIME, CSP e import maps publicados. --pubkey aceita PEM ou JWK confiável. Sem essa opção, a chave incluída prova apenas consistência e gera WU_INTEGRITY_UNPINNED. Este modo tem limites próprios: até 10000 arquivos, manifesto de 32 MiB e arquivos de 64 MiB; não usa o limite de 32 recursos do escaneamento normal.

O escaneamento local verifica CSP em todas as páginas de dist/; o remoto também descobre apps em #wu-apps. Nenhum substitui montar as apps no navegador. Para assinar e publicar, consulte build.

Referência de implementação

  • wu-cli/src/commands/doctor.zig
  • wu-cli/src/commands/doctor-remote.cjs
  • wu-cli/tests/doctor-policy.test.cjs
  • wu-cli/tests/doctor-remote-apps.test.cjs
  • wu-cli/tests/build-deploy.test.cjs
CONSTRUA O WU CONOSCO

Encontrou um bug? Tem uma ideia?

Sua experiência melhora o WU. Conte o que falhou ou ajude a manter seu desenvolvimento.