平台契约与联邦装载
大约 2 分钟前端开发开发指南
平台契约与联邦装载
@saber/micro 是 Saber 与业务远端的稳定接触面。宿主实现平台能力,远端通过契约使用这些能力。
装载顺序
Saber-AI 的 src/remote.ts 通过 defineRemote 默认导出远端定义;mf.config.mts 通过配置工厂只暴露 ./remote。页面组件使用懒加载,确保访问平台能力前句柄已经安装。
平台能力
在组件 setup 或业务模块中调用 usePlatform():
import { usePlatform } from '@saber/micro';
const platform = usePlatform();
const currentUser = platform.user.current();
const fontUrl = platform.assets.resolve('ai', 'fonts/example.woff2');| 成员 | 主要职责 |
|---|---|
auth | 当前访问令牌与登录状态 |
user / tenant | 归一化用户、管理员判定与租户信息 |
permission | 菜单与按钮使用的权限查询 |
http | 宿主请求实例;接口层经 /http 子路径委托 |
router | 导航、解析新窗口地址与关闭当前标签 |
i18n / theme | 当前语言、主题及相关能力 |
assets | 按远端注册位置解析运行期资源地址 |
events | 平台语言、主题、会话与远端装载事件 |
platformVersion 表示平台实现版本,contractVersion 表示契约主版本。业务远端使用归一化字段,不依赖宿主 store 的内部结构。
三个共享包
| 包 | 使用方式 |
|---|---|
@saber/micro | 契约、平台句柄、HTTP 与国际化委托、联邦配置工厂 |
@saber/utils | 按子路径导入校验、格式化、日期与公共工具 |
@saber/components | 宿主注册平台组件;远端卡片列使用 /card 子入口 |
@saber/micro 运行时必须保持单例。开发外壳来自 /dev,访客页面来自 /standalone,分别服务本地调试与独立访问;生产管理端由 Saber 宿主承载。
共享版本
宿主 pnpm run matrix 从已安装依赖生成 public/compatibility-matrix.json。AI 工程通过 pnpm run check-shared 检查共享版本。共享清单由 Saber-Kit 工厂集中定义,业务库随远端打包。
源码定位:Saber 的 src/federation/;Saber-Kit 的 packages/micro/src/contract/、runtime/、federation/;Saber-AI 的 src/remote.ts、mf.config.mts。
