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.zigwu-cli/src/commands/doctor-remote.cjswu-cli/tests/doctor-policy.test.cjswu-cli/tests/doctor-remote-apps.test.cjswu-cli/tests/build-deploy.test.cjs