WU / 文档通用微前端
中文

添加与移除微应用

逐步生成应用骨架、更新项目并手动移除应用,不使用不存在的命令。

添加应用

wu add vue explorador --no-install
wu add react busqueda --no-install
wu install

在项目根目录运行 add。两个位置参数依次为框架和名称。唯一支持的选项是 --no-install,可先生成多个应用,最后统一安装依赖。

不带 --no-install 时,add 使用与 wu install 相同的汇总器和写入器,保留根字段并传播 npm 错误。根清单没有 _wu 时会在生成前停止;可用 --no-install 手动声明依赖,或用 wu install --force 接管清单。

生成的内容

  1. 验证框架和名称,并检查目标目录是否已经存在。
  2. 在应用已用最大端口之后查找空闲端口;若没有空间,则从 5001 开始查找,并避开 shell 和代理端口。
  3. 生成 mf-<name>/,包含 package.json、入口、组件和框架配置。不生成源文件 wu.json。
  4. 如果配置来自 wu.config.json,则加入新应用并重写该文件。
  5. 将 shell 和应用声明汇总到受管理的根清单。
  6. 使用 npm 安装,除非传入 --no-install。

在使用依赖的应用或 shell 中声明特定依赖。add 保留自定义配置,并根据目录扩展 shared。JSON 错误包含行号和列号,不会将损坏的配置替换为新文件。

命名与 TypeScript

wu add react mf-checkout 会去掉传入名称的前缀,生成 mf-checkout/,不会重复添加 mf-。mf_ 前缀同样如此。空名称或仅包含该前缀的名称会被拒绝。目录已存在时也会失败。

当 supportsTs 支持时,该命令会启用 TypeScript,与 create 的快速模式保持一致。HTMX、Alpine 和 Stimulus 继续使用 JavaScript。其他模板无法通过 add 选项改用 JavaScript。

集成现有应用

add 用于生成新应用。要接入现有应用,请在 apps 中声明其 name、dir、framework、端口和命令;调整入口以完成 WU 注册,并检查 wu.json。然后运行 wu install、wu info、wu build,并在浏览器中验证挂载。

名称用于在运行时目录中标识应用,目录用于定位文件并解析依赖覆盖。修改其中一项时,请检查所有使用该字段的地方,不要认为两者可以互换。

移除或重命名

此版本未实现 wu remove,也没有重命名命令。移除应用时,需要删除 apps 中的条目,更新导航和挂载引用,再运行 wu install 重新计算依赖及覆盖配置。检查这些引用后,可以归档或删除应用目录。

重命名时,目录、wu.config.json、适配器注册的名称、wu.json 和 shell 使用的标识符必须保持一致。运行 wu doctor 查找过期的目录引用,并在发布前重新构建。

已确认的限制

没有 wu.config.json 时,add 使用自动发现计算依赖和端口,但不写入新配置。为了保持稳定拓扑,建议显式创建项目。生成文件失败会移除新目录;后续安装失败会以退出码 1 报告。

实现参考

  • wu-cli/src/commands/add.zig
  • wu-cli/src/commands/install.zig
  • wu-cli/src/config/names.zig
  • wu-cli/tests/scaffold-writers.test.cjs
  • wu-cli/tests/scaffold-security.test.cjs
一起完善 WU

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

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