@fulgurjs/federation 3.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +303 -110
- package/dist/{chunk-TMSMEZPM.js → chunk-75PP6EAK.js} +1 -1
- package/dist/chunk-NUZKZUTD.js +144 -0
- package/dist/chunk-TSXZ7TWA.js +144 -0
- package/dist/{chunk-3VBYOVH4.js → chunk-WBCXLR2N.js} +9 -1
- package/dist/cli.js +584 -127
- package/dist/config.cjs +63 -4
- package/dist/config.d.cts +31 -4
- package/dist/config.d.ts +31 -4
- package/dist/config.js +62 -4
- package/dist/context.cjs +12 -2
- package/dist/context.d.cts +21 -5
- package/dist/context.d.ts +21 -5
- package/dist/context.js +12 -3
- package/dist/index.cjs +149 -59
- package/dist/index.d.cts +2 -92
- package/dist/index.d.ts +2 -92
- package/dist/index.js +149 -59
- package/dist/options-CRGpSmVj.d.cts +100 -0
- package/dist/options-CRGpSmVj.d.ts +100 -0
- package/dist/pages.js +4 -139
- package/dist/runtime-entry.d.ts +360 -0
- package/dist/runtime-entry.js +5 -0
- package/dist/runtime.js +10 -3
- package/dist/vue-adapter.cjs +307 -0
- package/dist/vue-adapter.d.cts +62 -0
- package/dist/vue-adapter.d.ts +62 -0
- package/dist/vue-adapter.js +9 -0
- package/dist/vue.cjs +419 -21
- package/dist/vue.d.cts +8 -33
- package/dist/vue.d.ts +8 -33
- package/dist/vue.js +4 -845
- package/docs//350/277/201/347/247/273/346/214/207/345/215/227.md +21 -16
- package/package.json +13 -5
- package/client.d.ts +0 -180
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.1.0(2026-09-24)
|
|
4
|
+
|
|
5
|
+
### 新能力:远程初始化生命周期 + 宿主页面适配器 + 单配置驱动
|
|
6
|
+
|
|
7
|
+
- **`federation({ setup })` 远程初始化(可选)**:声明初始化入口文件(默认导出 `setup(context)` 应用级执行一次,可选具名导出 `onSession(context)` 按宿主 `sessionKey` 去重执行;换账号/重登自动重跑,退出 `clearAppContext()` 清理会话状态)。`loadRemote('remote/模块')` 是统一触发入口(容器 init 后、返回模块前);`loadRemote('remote')`、`getContainer()`、`preloadRemote()` 不执行初始化。失败显式报错可重试:`MFU-011`(导出非法)/ `MFU-012`(执行失败)/ `MFU-013`(有 onSession 缺 sessionKey)/ `MFU-014`(自递归)。内部 expose 键 `./__fulgurjs_setup__`(CFG-012 拦截占用),不进 dts/公开 exposes 清单。旧的「expose 启动器 + 宿主手动 loadRemote 调用」写法继续可用(兼容形态)。
|
|
8
|
+
- **`createHostPages({ pages, remotePrefixes, ... })` 宿主页面适配器**:一份页面表供宿主路由与布局共用;URL 解析(base 剥离/深链/参数解码失败不崩)、最长前缀远程归属、`definePages` R1–R5 校验、异步组件缓存(会话切换自动重建)、骨架屏/错误占位、保活名称内置。包装组件不修改远程模块导出对象。
|
|
9
|
+
- **`federationOptionsForApp(config, app)`**(`@fulgurjs/federation/config`):仓库配置直转 Vite 插件选项(name/remotes/exposes/setup/shared/devSharedSelf);同键不同地址报错带两边值。`HostConfig.pages` 转为可选(应用代码页面表为运行时真源),新增 `deriveSpec`/`devSharedSelf` 字段。
|
|
10
|
+
- **`clearAppContext()`**:退出清理——删 context + 作废全部远程会话信号与 onSession 去重状态;不重置模块缓存/共享模块图/应用级 setup。无运行时单例时静默幂等(不阻断登出)。
|
|
11
|
+
- **CLI**:`fulgurjs explain`(配置解释器:角色/remotes/exposes/setup/shared/页面映射/devSharedSelf 来源/加载链,纯本地);`fulgurjs check-pages`(页面表 ↔ 远程 manifest exposes 契约核对,确定性错误非零退出,远程不可达报「无法验证」)。
|
|
12
|
+
|
|
13
|
+
### 行为变更
|
|
14
|
+
|
|
15
|
+
- **`devSharedSelf` 角色推断(§12.4)**:提供 `exposes`(或 `setup`)的应用默认 `true`(此前双向联邦默认 `false`、README 要求显式 `true`——漏配曾是已知错误配置来源);纯宿主默认 `false`;显式配置永远优先。
|
|
16
|
+
- **不支持选项硬报错(§12.6)**:`remoteType` 非 `module`、`library.type` 非 `module/esm`、`automaticAsyncBoundary: false` 从「warning + 静默回落」改为配置期 `CFG-011` 报错;`remoteType` 类型收窄为字面量 `'module'`。
|
|
17
|
+
- **runtime gzip 门禁 6144B → 8192B**:setup/onSession 生命周期固有增量(4.1.0 实测 7585B)。
|
|
18
|
+
- `@fulgurjs/federation/runtime` 新增导出:`clearAppContext`、`createHostPages`;类型新增 `RemoteSetupContext`、`RemoteSetupModule`、`HostPages`、`HostPagesOptions`、`ResolvedHostPage`;`AppContext` 新增 `sessionKey` 字段。
|
|
19
|
+
|
|
20
|
+
## 4.0.0(2026-09-24)
|
|
21
|
+
|
|
22
|
+
### 应用代码改用物理入口
|
|
23
|
+
|
|
24
|
+
- 唯一公开应用入口改为 `@fulgurjs/federation/runtime`,提供实际的 ESM 文件与类型声明;配置入口仍为包根和 `/config`。
|
|
25
|
+
- `virtual:fulgurjs-api` 与 `@fulgurjs/federation/client` 删除。3.x 用户将应用导入改为 `/runtime`,并清除 tsconfig 中的 `client` 类型项及旧生成的 `fulgurjs-runtime.d.ts`。
|
|
26
|
+
- 开发态 exposes 使用内部页面级代理;`remoteComponent()` 保持同步返回 Vue 组件。`remoteSchema` 静态具名导入由插件拆出,非开发环境为空清单。
|
|
27
|
+
- Vue 适配层与运行时内核分离,公开 ESM 图只引用一份 `runtime.js`。
|
|
28
|
+
- `/runtime` 只提供 ESM `import` 条件,使用时需安装 Vue;包根和 `/config` 的 CJS 条件不变。新入口沿用 3.0.x 实际 JS 门面的值导出,不提供 `runtime` 对象或 default(旧 `client.d.ts` 曾多声明这两项)。
|
|
29
|
+
|
|
30
|
+
| 旧应用写法 | 4.0.0 写法 |
|
|
31
|
+
|---|---|
|
|
32
|
+
| `virtual:fulgurjs-api`(3.0.x) | `@fulgurjs/federation/runtime` |
|
|
33
|
+
| `virtual:fulgurjs-runtime`(≤2.x) | `@fulgurjs/federation/runtime` |
|
|
34
|
+
| `@fulgurjs/federation/context`、`/pages`、`/vue`(≤2.x) | `@fulgurjs/federation/runtime` |
|
|
35
|
+
| `import remoteSchema from 'virtual:fulgurjs-remote-schema'` | `import { remoteSchema } from '@fulgurjs/federation/runtime'` |
|
|
36
|
+
| tsconfig `types` 中的 `@fulgurjs/federation/client` | 删除该项;类型由 `/runtime` 的包导出解析 |
|
|
37
|
+
|
|
3
38
|
## 3.0.1(2026-09-24)
|
|
4
39
|
|
|
5
40
|
### 修复
|