WU / DOCSUNIVERSAL MICROFRONTENDS
ES

Empaquetar una app con wu pack

Crea un archivo .wuapp firmado desde un build nativo y prepara su instalación en otro shell.

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 build --native
wu pack --keygen keys/catalog.pem --json
wu pack catalog --sign keys/catalog.pem --version 1.2.0 --out catalog-1.2.0.wuapp --json

Ejecuta los comandos desde el workspace. catalog es el nombre en dist/wu-manifest.json, no necesariamente el nombre de carpeta. La salida de --keygen incluye la JWK pública que el host usará en trust; la clave privada permanece en el archivo PEM.

Argumento Contrato
<app> Nombre de una app del manifiesto de build.
--dist <dir> Directorio de build; defecto dist.
--out <file> Archivo de salida; defecto <name>-<version>.wuapp.
--version <version> Versión de la app dentro del paquete.
--sign <key.pem> Firma con una clave privada ECDSA P-256.
--keygen <key.pem> Genera una clave privada e imprime la pública; no empaqueta.
--json Emite el resultado o error como JSON.

Formato y resolución de módulos

El formato wuapp/1 es JSON comprimido con gzip. Incluye nombre, versión, entrada, manifest y archivos con tipo, codificación, contenido y SHA-256. Los imports JavaScript internos se convierten en rutas relativas y se retira ?v=<build>. Las referencias /@modules/ permanecen para usar módulos compartidos del host; el paquete no incluye automáticamente todas las dependencias del shell.

La versión se toma de --version, del manifest de la app, de su package.json o finalmente de 0.0.0. La firma cubre la representación canónica de formato, identidad, entrada, manifest y hashes. Sin --sign, el resultado es un paquete sin firma; el instalador exige autorización explícita para aceptarlo.

Resultado y errores

La salida JSON incluye out, name, version, entry, files, bytes, signed y publicKey. Un manifiesto de build ausente, app desconocida, entrada inexistente o clave inválida produce salida 1. La versión indicada por --version pertenece a la app empaquetada, no a WU CLI. Para verificar la firma y montar el contenido, sigue Instalar archivos .wuapp.

En 1.2.0, --keygen rechaza sobrescribir una clave existente; --force permite ese reemplazo explícito. Las firmas solo aceptan ECDSA P-256. El empaquetador asigna MIME por extensión y valida paths, tipos y límites según las reglas del instalador. Los nombres con hash del build nativo conservan su identidad dentro del paquete.

Referencia de implementación

  • wu-cli/src/commands/pack.cjs
  • wu-cli/tests/pack-safety.test.cjs
  • wu-cli/tests/pack.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.