Micro Frontend Architecture · MF 2.0

Art Design Pro Micro

基于 Vue 3 + MF 2.0 的企业级微前端底座

保留 Art Design Pro 的优雅界面与业务组件,把应用边界、状态共享、加载性能、脚手架与 错误隔离做成可验证的工程约束。不是把单体拆开,而是让复杂度可控。

GitHub starsGitee starsv1.5.0 · MIT License
mfe-runtime — zshLIVE
$pnpm dev
turboscope: apps/* + packages/*
Happ-mainhost :3006
remoteapp-system
remoteapp-*
sharedpackages/*
✔federation runtime ready
✔shared singletons resolved
03可部署应用单元
06共享核心 packages
01全局运行时实例
02级预加载策略

Architecture advantages

不是拼装,
是架构约束。

微前端的难点从来不是“加载另一个应用”,而是部署、状态、依赖与运行时的一致。 这六件事,我们在底座层面解决。

01

微前端聚合

app-main 是唯一宿主。运行时按 remotes 注册表加载子应用路由,合并进同一套菜单、权限与布局,子应用无需为被聚合改一行代码。

MF 2.0
02

独立单飞

每个子应用自带 Layout、登录页与路由守卫,可以独占域名独立部署、独立发布,也能被宿主聚合,两种形态共用同一套核心。

STANDALONE
03

秒开预加载

登录后 requestIdleCallback 空闲预热 manifest、remoteEntry 与路由表,菜单悬停再预取页面 chunk,真正点击时直接命中缓存。

PRELOAD
04

CLI 脚手架

app:create / app:list / app:delete 三条命令完成建应用、注册远端、追加 RouteName 与回收清理,校验不过直接失败、不落盘。

CLI
05

自动化门禁

typecheck、dependency-cruiser 依赖方向、产物审计与双端 CI 组成质量门禁;GitHub Quality Gate 与 Gitee 双审批,越界代码合不进去。

CI GATE
06

错误隔离

远端加载超时重试、ArtErrorBoundary 局部兜底、全局脚本与资源错误归集。单个子应用崩溃只影响自己的卡片,宿主继续可用。

RESILIENCE

Independent deployments

体验微前端
独立单飞。

三个应用各自构建、各自部署、各自发布。它们能被宿主聚合成同一套菜单与权限, 也能用独立域名单独打开 —— 两种形态共用同一套核心。

直接访问 app-system 或 app-example 域名时,会看到各自的独立登录页与完整布局; 由 app-main 打开时,它们只贡献路由与页面。演示账号 Super / 123456。

Monorepo, with boundaries

目录结构,
也是运行时契约。

apps 是可部署单元,packages 是可共享能力。依赖方向由规则强制,而不是靠约定和记忆。 子应用可以独立单飞,也可以被宿主聚合,两种形态共用同一套核心。

  • apps/* 只通过 Module Federation expose 通信,跨应用禁止源码引用。
  • packages/* 依赖方向单向收敛,dependency-cruiser 在 CI 拦截回环与越层。
  • shared singleton Vue、Pinia、Router、Element Plus 单实例,状态与权限不再分裂。
  • remotes 注册表 新增子应用只追加一条注册项,宿主路由源与构建期 remotes 同源。
monorepo.tree
art-design-pro-micro/ # pnpm workspace
├─ apps/ # deployable units
│ ├─ app-main/ # host · shell
│ ├─ app-system/ # remote · system
│ └─ app-example/ # remote · 组件与模板示例
├─ packages/ # shared runtime
│ ├─ app-core/ # router · store · guards
│ ├─ app-api/ # http · websocket
│ ├─ app-components/ # ui · layout shell
│ ├─ app-utils/ # utils · route names
│ ├─ app-base/ # bootstrap
│ └─ app-config/ # vite · mf 2.0
├─ templates/ # app:create 复制源
│ └─ app-template/ # empty shell
├─ scripts/ # CLI 与自动 PR
├─ website/ # VitePress 官网文档
└─ dependency-cruiser.js # boundary rules

Start building

把微前端的复杂度,
留在架构里。

从一次 clone 开始。安装依赖、启动工作区,宿主与子应用会各自就位。 文档覆盖架构、接入与常见问题,下一步由你定义。

$git clone https://github.com/smfengLabs/art-design-pro-micro.git