WU / 文档通用微前端
中文

使用 wu pack 打包应用

从原生构建创建签名 .wuapp,并准备在其他宿主中安装。

需要 WU CLI 1.2.0,应用 API 需要 WU Framework 4.0.0。请检查 wu --version 和项目依赖。

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

在工作区运行命令。catalog 是 dist/wu-manifest.json 中的名称,不一定是目录名。--keygen 输出宿主 trust 使用的公钥 JWK,私钥保存在 PEM 文件中。

参数 行为约定
<app> 构建清单中的应用名称。
--dist <dir> 构建目录,默认为 dist。
--out <file> 输出文件,默认为 <name>-<version>.wuapp。
--version <version> 包中的应用版本。
--sign <key.pem> 使用 ECDSA P-256 私钥签名。
--keygen <key.pem> 生成私钥并输出公钥,不执行打包。
--json 以 JSON 输出结果或错误。

格式与模块解析

wuapp/1 格式为 gzip 压缩的 JSON,包含名称、版本、入口、清单以及具有类型、编码、内容和 SHA-256 的文件。内部 JavaScript 导入改为相对路径,并移除 ?v=<build>。/@modules/ 引用保留以使用宿主共享模块;不会自动包含宿主的所有依赖。

版本依次来自 --version、应用清单、应用 package.json,最终回退到 0.0.0。签名覆盖格式、身份、入口、清单和哈希的规范化表示。不使用 --sign 时生成无签名包,安装器需要显式授权才会接受。

结果与错误

JSON 输出包含 out、name、version、entry、files、bytes、signed 和 publicKey。缺少构建清单、未知应用、缺少入口或密钥无效时退出码为 1。--version 指打包应用的版本,不是 WU CLI 版本。验证签名和挂载内容见安装 .wuapp 文件。

在 1.2.0 中,--keygen 拒绝覆盖现有密钥;--force 允许显式替换。签名仅接受 ECDSA P-256。打包器按扩展名分配 MIME,并根据安装器规则验证路径、类型和限制。原生构建的哈希名称在包内保留身份。

实现参考

  • wu-cli/src/commands/pack.cjs
  • wu-cli/tests/pack-safety.test.cjs
  • wu-cli/tests/pack.test.cjs
一起完善 WU

发现了问题?有新的想法?

你的使用体验能让 WU 变得更好。告诉我们遇到的问题,或支持项目的持续开发。