SingleSPA 运行良好。Import Maps 却管不好自己

SingleSPA 运行良好。我们在同一个页面上运行 React、Vue 和 Angular 应用。它们独立加载。这个框架表现出色。

问题不在于框架,而在于围绕它的生态系统。

在分布式架构中,你需要所有权、审计和治理。SingleSPA 让这些需求变得显而易见,因为 import map 是一个核心的协调点。

import map 存在于你的 root config 中。它是一个 JSON 文件。它告诉每个微前端 (MFE) 该加载哪个版本的 React。理论上,它是“单一事实来源”(source of truth)。但在实践中,没有人负责管理它

我们开发了一个工具来解决这个问题。它主要做两件事:

  1. 从每个 MFE 的 package.json 中构建版本矩阵。
  2. 将该矩阵与你的 import map 进行对比。

该工具会向你展示其中的差距。它能显示哪些团队是合规的,哪些团队已经发生了偏差。它还能发现过期的条目和失效的 URL。我们每周一早上都会运行它,耗时仅需 12 秒。

我们得到的教训并非技术层面的。每一个分布式架构都需要有人负责共享基础设施。在 SingleSPA 中,import map 就是基础设施。不要把它当作一个共享文件,要把它当作一项受管资产。

你是如何处理这种情况的?你们有专门的 import map 管理员吗?还是说你得在周一早上通过 grep 搜索文件来排查问题?

来源:https://dev.to/siongsheng/singlespa-works-import-maps-dont-manage-themselves-4jbe