@fulgurjs/federation 4.0.0 → 4.2.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 +49 -0
- package/README.md +369 -138
- 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/{chunk-X4LZDAZQ.js → chunk-XIO5Y2IM.js} +1 -1
- package/dist/cli.js +1149 -208
- package/dist/config.cjs +66 -6
- package/dist/config.d.cts +31 -4
- package/dist/config.d.ts +31 -4
- package/dist/config.js +65 -6
- 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 +72 -21
- package/dist/index.d.cts +2 -92
- package/dist/index.d.ts +2 -92
- package/dist/index.js +72 -21
- 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 +86 -5
- package/dist/runtime-entry.js +3 -3
- package/dist/runtime.js +10 -3
- package/dist/vue-adapter.cjs +241 -0
- package/dist/vue-adapter.d.cts +47 -1
- package/dist/vue-adapter.d.ts +47 -1
- package/dist/vue-adapter.js +4 -1
- package/dist/vue.cjs +402 -3
- package/dist/vue.d.cts +6 -2
- package/dist/vue.d.ts +6 -2
- package/dist/vue.js +2 -1
- package/docs//350/277/201/347/247/273/346/214/207/345/215/227.md +20 -17
- package/examples/fulgurjs.config.example.ts +29 -37
- package/package.json +1 -1
- package/dist/chunk-AYS56IRF.js +0 -42
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.2.0(2026-09-25)
|
|
4
|
+
|
|
5
|
+
### 新能力:每项目一份 `fulgurjs.config.ts`(单项目契约,默认主路径)
|
|
6
|
+
|
|
7
|
+
- **默认导出直接是 `federation()` 选项**:`fulgurjs.config.ts`(应用根目录)默认导出
|
|
8
|
+
`satisfies FederationOptions` 的选项对象,`vite.config.ts` 只需
|
|
9
|
+
`import fulgurjsConfig from './fulgurjs.config'` + `federation(fulgurjsConfig)` 一次注册——
|
|
10
|
+
无 `loadRepoConfig`/`federationOptionsForApp`/父目录配置/应用名字符串查找。宿主与远程分属
|
|
11
|
+
互不相邻的仓库时各自独立构建/部署/诊断(只声明对方 URL 与容器名)。
|
|
12
|
+
- **宿主页面核对数据具名导出 `hostPages`**(`{ pages, remotePrefixes, deriveSpec? }`):仅供
|
|
13
|
+
CLI `explain`/`check-pages` 读取,与运行时 `createHostPages` 消费同一份数据模块——页面表
|
|
14
|
+
唯一手工维护位置,`check-pages` 核对的就是浏览器实际使用的页面数据。
|
|
15
|
+
- **CLI 配置加载器**(内部,不入项目 Vite 代码):以原配置文件为解析基准 esbuild-bundle
|
|
16
|
+
(支持项目内相对导入的纯数据模块、extensionless、Node ≥ 18、pnpm 严格布局经 vite 依赖树
|
|
17
|
+
解析 esbuild);缺失文件/无 name/字段形状错/expose 指向项目外或不存在文件三段式报错。
|
|
18
|
+
- **CLI 单项目化**:`init` 默认生成单项目起步模板(不再生成聚合配置样板);`explain`
|
|
19
|
+
按**实际 federation 选项**判角色(配 remotes=消费、配 exposes/setup=提供,两者均有=双角色),
|
|
20
|
+
单项目形态免 `--app`;`check-pages` 支持 `--manifest <remote>=<路径|URL>`(可多次)、
|
|
21
|
+
`--site` 按消费方 prod 地址推导、输出每个 remote 的 manifest 实际来源、
|
|
22
|
+
`--require-verified` 严格模式(无法验证也非零退出)。
|
|
23
|
+
- **`FederationOptions` 类型公开导出**(4.1.0 已导出,4.2.0 起为单项目契约的正式依赖)。
|
|
24
|
+
|
|
25
|
+
### 行为变更
|
|
26
|
+
|
|
27
|
+
- **`fulgurjs init` 只生成配置起步模板**:不生成桥/路由/启动器/NGINX 文件(NGINX 内容仅作
|
|
28
|
+
打印样板随旧聚合配置输出)。README/迁移指南同步订正:删除不存在的 `host.prefetch` 配置面
|
|
29
|
+
说法(预载名单 = 宿主桥 `PREFETCH_REMOTES` 常量)。
|
|
30
|
+
- **旧聚合配置(`root + apps[]`)自动识别、兼容期保留**:`defineRepoConfig`/`loadRepoConfig`/
|
|
31
|
+
`federationOptionsForApp` 行为不变(`explain`/`check-pages` 需 `--app`);但文档主路径、
|
|
32
|
+
`init` 模板与示例一律为单项目形态。`explain` 对聚合配置同样按实际选项判角色(双向联邦
|
|
33
|
+
应用显示「双角色」)。
|
|
34
|
+
|
|
35
|
+
## 4.1.0(2026-09-24)
|
|
36
|
+
|
|
37
|
+
### 新能力:远程初始化生命周期 + 宿主页面适配器 + 单配置驱动
|
|
38
|
+
|
|
39
|
+
- **`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 调用」写法继续可用(兼容形态)。
|
|
40
|
+
- **`createHostPages({ pages, remotePrefixes, ... })` 宿主页面适配器**:一份页面表供宿主路由与布局共用;URL 解析(base 剥离/深链/参数解码失败不崩)、最长前缀远程归属、`definePages` R1–R5 校验、异步组件缓存(会话切换自动重建)、骨架屏/错误占位、保活名称内置。包装组件不修改远程模块导出对象。
|
|
41
|
+
- **`federationOptionsForApp(config, app)`**(`@fulgurjs/federation/config`):仓库配置直转 Vite 插件选项(name/remotes/exposes/setup/shared/devSharedSelf);同键不同地址报错带两边值。`HostConfig.pages` 转为可选(应用代码页面表为运行时真源),新增 `deriveSpec`/`devSharedSelf` 字段。
|
|
42
|
+
- **`clearAppContext()`**:退出清理——删 context + 作废全部远程会话信号与 onSession 去重状态;不重置模块缓存/共享模块图/应用级 setup。无运行时单例时静默幂等(不阻断登出)。
|
|
43
|
+
- **CLI**:`fulgurjs explain`(配置解释器:角色/remotes/exposes/setup/shared/页面映射/devSharedSelf 来源/加载链,纯本地);`fulgurjs check-pages`(页面表 ↔ 远程 manifest exposes 契约核对,确定性错误非零退出,远程不可达报「无法验证」)。
|
|
44
|
+
|
|
45
|
+
### 行为变更
|
|
46
|
+
|
|
47
|
+
- **`devSharedSelf` 角色推断(§12.4)**:提供 `exposes`(或 `setup`)的应用默认 `true`(此前双向联邦默认 `false`、README 要求显式 `true`——漏配曾是已知错误配置来源);纯宿主默认 `false`;显式配置永远优先。
|
|
48
|
+
- **不支持选项硬报错(§12.6)**:`remoteType` 非 `module`、`library.type` 非 `module/esm`、`automaticAsyncBoundary: false` 从「warning + 静默回落」改为配置期 `CFG-011` 报错;`remoteType` 类型收窄为字面量 `'module'`。
|
|
49
|
+
- **runtime gzip 门禁 6144B → 8192B**:setup/onSession 生命周期固有增量(4.1.0 实测 7585B)。
|
|
50
|
+
- `@fulgurjs/federation/runtime` 新增导出:`clearAppContext`、`createHostPages`;类型新增 `RemoteSetupContext`、`RemoteSetupModule`、`HostPages`、`HostPagesOptions`、`ResolvedHostPage`;`AppContext` 新增 `sessionKey` 字段。
|
|
51
|
+
|
|
3
52
|
## 4.0.0(2026-09-24)
|
|
4
53
|
|
|
5
54
|
### 应用代码改用物理入口
|