WU / DOCSUNIVERSAL MICROFRONTENDS
ES

Doctor: diagnóstico local y remoto

Inspecciona archivos, dependencias y respuestas HTTP con códigos de diagnóstico y salidas para CI.

Requiere WU CLI 1.2.0 y, para las APIs de las aplicaciones, WU Framework 4.0.0. Comprueba wu --version y las dependencias del proyecto.

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

wu info muestra la configuración efectiva. Doctor local usa el binario nativo; el remoto usa Node >=20 y realiza GET sin cookies ni credenciales. No ejecuta JavaScript ni repara archivos. La salida JSON evita ANSI y avisos de actualización. El modo local JSON no sondea el puerto 3000; la salida humana mantiene esa comprobación antigua.

Código Comprobación
WU_D000 Proyecto no encontrado.
WU_D001 Directorios de aplicaciones.
WU_D002 Entrada o build del shell.
WU_D003 Rangos coherentes y compatibles con la versión objetivo de Framework del catálogo.
WU_D004 Overrides por directorio y toolchains.
WU_D005 Colisiones de puertos.
WU_D006 Archivos sensibles en la salida pública.
WU_D007 Cabeceras de seguridad y handlers inline.
WU_D008 Guía de comprobación HTTP o respuesta local.
WU_D009 Framework usado por varias apps que falta en shared.

Los informes incluyen schemaVersion: 1, tool, mode, ok, checks, problems y diagnostics; el local también incluye version. Cada diagnóstico tiene code, severity y message. Una categoría puede generar varios hallazgos. Las advertencias pueden permanecer con salida 0; los errores producen 1. Opciones inválidas o fallos de ejecución remota producen 2.

WU_D003 acepta rangos limitados al major de Framework del catálogo, como ^4.0.0, 4.x, 4.2.3 o >=4 <5. Rechaza rangos incompatibles, malformados, vacíos o abiertos a otro major, como ^3 || ^4 y >=4. Las declaraciones de shell y apps deben coincidir; las dependencias locales conservan sus comprobaciones de destino.

Alcance del escaneo remoto

--url selecciona HTTP o HTTPS. Repite --route para páginas y --entry para módulos o recursos de otros orígenes explícitos. --timeout vale 5000 ms por respuesta, incluyendo el cuerpo, y admite 100–30000. El escaneo sigue referencias estáticas; imports calculados y aplicaciones descubiertas durante ejecución requieren pruebas de navegador.

El escaneo limita recursos a 32, peticiones a 40, redirecciones a 3 por recurso, respuestas a 2 MiB y tiempo total a 30 segundos. Una inspección incompleta es un error. Los diagnósticos distinguen status HTTP, MIME incorrecto, CSP inline, fallback HTML para assets, fallos de red y orígenes externos omitidos. Divide sitios grandes en recorridos concretos.

Integridad de un despliegue

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

--integrity verifica wu-integrity.json, creado por wu build --sign, y compara firma, bytes, MIME, CSP e import maps publicados. --pubkey acepta PEM o JWK de confianza. Sin esa opción, la clave incluida solo prueba consistencia y genera WU_INTEGRITY_UNPINNED. Este modo tiene límites propios: hasta 10000 archivos, manifiesto de 32 MiB y archivos de 64 MiB; no usa el límite de 32 recursos del escaneo normal.

El escaneo local revisa CSP de todas las páginas de dist/; el remoto también descubre apps desde #wu-apps. Ninguno sustituye montar las apps en un navegador. Para firmar y publicar, sigue build.

Referencia de implementación

  • 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
WU SE CONSTRUYE CONTIGO

¿Encontraste un bug? ¿Tienes una idea?

Tu experiencia mejora WU. Cuéntanos qué falla o ayuda a sostener su desarrollo.