@fulgurjs/federation 0.9.1-test.1 → 2.0.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.
@@ -75,27 +75,27 @@ const FederatedBusinessForm = remoteComponent('demo-host/FormRouterPage')
75
75
  `(globalThis as any).__FULGURJS_RUNTIME__` 直取全局单例仅剩"独立访问远程页 vs 联邦加载"的
76
76
  realm 检测等特殊场景,常规集成无需使用。
77
77
 
78
- ## 三C、跨应用传值:FulgurjsAppContext
78
+ ## 三C、跨应用传值:AppContext
79
79
 
80
80
  原 qiankun `props` / `globalState` / `window.*` 裸口子,统一收编为 context 一等公民通道(对标乾坤 props,带类型与错误契约):
81
81
 
82
82
  ```ts
83
83
  // 宿主桥(admin/src/fulgurjs/host/bridge.ts)——登录完成后一次性提供
84
- import { provideFulgurjsAppContext } from '@fulgurjs/federation/context'
85
- provideFulgurjsAppContext({
84
+ import { provideAppContext } from '@fulgurjs/federation/context'
85
+ provideAppContext({
86
86
  user, getToken, store, hostApp, locale, // 只传有真实消费的键(token 一律 getToken() 拉取)
87
87
  events: { main: mainEvents }, // 方法池:宿主提供 main.*,子应用反向注册 bpm.* / lowcode.*
88
88
  // 项目扩展位:自定义键按需自行提供(如 baseUrl)
89
89
  })
90
90
 
91
91
  // 远程启动引导(xxx/src/fulgurjs/exposes/federatedBoot.ts)——显式校验消费
92
- import { requireFulgurjsAppContext } from '@fulgurjs/federation/context'
93
- const { store, user, hostApp } = requireFulgurjsAppContext('store', 'user', 'hostApp')
92
+ import { requireAppContext } from '@fulgurjs/federation/context'
93
+ const { store, user, hostApp } = requireAppContext('store', 'user', 'hostApp')
94
94
  // 缺键 → [fulgurjs:CC-001](三段式,指向宿主桥);独立直开远程页 → [fulgurjs:CC-002]
95
95
 
96
96
  // 页面读点(替代 window.mainAppProps?.xxx)
97
- import { getFulgurjsAppContext } from '@fulgurjs/federation/context'
98
- const dict = getFulgurjsAppContext().events?.main?.getDictItems?.('sex')
97
+ import { getAppContext } from '@fulgurjs/federation/context'
98
+ const dict = getAppContext().events?.main?.getDictItems?.('sex')
99
99
  ```
100
100
 
101
101
  要点:
@@ -104,7 +104,6 @@ const dict = getFulgurjsAppContext().events?.main?.getDictItems?.('sex')
104
104
  - **数据语义**:传输层快照 + 函数引用,非响应式(与乾坤 props 同语义)。"实时"三通道 = ①函数引用拉取(`getToken()` / `events.main.*` 每次执行宿主最新闭包)②宿主 pinia 共享响应式(`useUserStore(ctx.store)`)③登录变更 = 刷新重跑;
105
105
  - **嵌套对象(events)是引用共享**:子应用挂属性即时可见(同 realm 直引用);
106
106
  - **方法引用两条通道**:高频热路径(token/字典/文件 URL、反向注册)走 context 函数引用;低频/重逻辑跨应用调用走 exposes 方法模块——远程 `src/fulgurjs/exposes/api.ts` 导出纯函数(不挂 Vue 组件),对面 `await loadRemote('remote/api')`;
107
- - 旧名 `provideFulgurjsAppConfig / getFulgurjsAppConfig` 存储同一份,已标 `@deprecated`,存量代码请迁新名。
108
107
 
109
108
  ## 三D、页面卸载清理清单
110
109
 
@@ -112,7 +111,7 @@ const dict = getFulgurjsAppContext().events?.main?.getDictItems?.('sex')
112
111
 
113
112
  | 资源 | 清理方式 |
114
113
  |---|---|
115
- | `context.events.bpm.xxx = fn` 反向注册 | `onUnmounted(() => { delete getFulgurjsAppContext().events?.bpm?.xxx })` |
114
+ | `context.events.bpm.xxx = fn` 反向注册 | `onUnmounted(() => { delete getAppContext().events?.bpm?.xxx })` |
116
115
  | `window.addEventListener(...)` | 记住函数引用,`onUnmounted` 里 `removeEventListener` |
117
116
  | `setInterval` / `setTimeout` | `onUnmounted` 里 `clearInterval` / `clearTimeout` |
118
117
  | `window.__FULGURJS_INFO__.errors.push(...)` 之外的自挂全局 | 同理显式删除 |
@@ -120,9 +119,9 @@ const dict = getFulgurjsAppContext().events?.main?.getDictItems?.('sex')
120
119
  ```ts
121
120
  import { onUnmounted } from 'vue'
122
121
  const onBpmEvent = (e: unknown) => { /* ... */ }
123
- getFulgurjsAppContext().events!.bpm!.formEvent = onBpmEvent
122
+ getAppContext().events!.bpm!.formEvent = onBpmEvent
124
123
  onUnmounted(() => {
125
- const events = getFulgurjsAppContext().events
124
+ const events = getAppContext().events
126
125
  if (events?.bpm?.formEvent === onBpmEvent) delete events.bpm.formEvent
127
126
  })
128
127
  ```
@@ -3,9 +3,9 @@
3
3
  * 用法:npx fulgurjs init --config examples/fulgurjs.config.example.ts
4
4
  * 完整字段说明见 `fulgurjs init` 生成的起步模板(fulgurjs init --template fulgurjs.config.ts)。
5
5
  */
6
- import { defineFulgurjsConfig } from '@fulgurjs/federation/config'
6
+ import { defineRepoConfig } from '@fulgurjs/federation/config'
7
7
 
8
- export default defineFulgurjsConfig({
8
+ export default defineRepoConfig({
9
9
  root: process.cwd(),
10
10
  apps: [
11
11
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fulgurjs/federation",
3
- "version": "0.9.1-test.1",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "description": "Vite Module Federation with full Webpack MF parity. Dev & production, no compromise.",
6
6
  "license": "MIT",
@@ -62,14 +62,14 @@
62
62
  "CHANGELOG.md",
63
63
  "DESIGN.md",
64
64
  "examples",
65
- "docs/迁移指南.md",
66
- "docs/webpack-mf-对照与缺口.md",
67
- "docs/沙箱边界审计.md",
68
- "docs/P5-vite7-8兼容矩阵.md",
65
+ "docs/\u8fc1\u79fb\u6307\u5357.md",
66
+ "docs/webpack-mf-\u5bf9\u7167\u4e0e\u7f3a\u53e3.md",
67
+ "docs/\u6c99\u7bb1\u8fb9\u754c\u5ba1\u8ba1.md",
68
+ "docs/P5-vite7-8\u517c\u5bb9\u77e9\u9635.md",
69
69
  "docs/vite-upstream-issue-irregexp.md"
70
70
  ],
71
71
  "scripts": {
72
- "build": "cp ../../README.md README.md && mkdir -p docs && cp ../../docs/迁移指南.md ../../docs/webpack-mf-对照与缺口.md ../../docs/沙箱边界审计.md ../../docs/P5-vite7-8兼容矩阵.md ../../docs/vite-upstream-issue-irregexp.md docs/ && cp ../../CHANGELOG.md CHANGELOG.md && cp ../../DESIGN.md DESIGN.md && rm -rf examples && cp -r ../../examples examples && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/gen-runtime.mjs && tsup src/index.ts src/pages.ts src/config.ts src/vue.ts src/context.ts --format esm,cjs --dts --external vite --target node18 --clean && esbuild src/cli.ts --bundle --format=esm --target=node18 --platform=node --outfile=dist/cli.js && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/check-gzip.mjs",
72
+ "build": "cp ../../README.md README.md && mkdir -p docs && cp ../../docs/\u8fc1\u79fb\u6307\u5357.md ../../docs/webpack-mf-\u5bf9\u7167\u4e0e\u7f3a\u53e3.md ../../docs/\u6c99\u7bb1\u8fb9\u754c\u5ba1\u8ba1.md ../../docs/P5-vite7-8\u517c\u5bb9\u77e9\u9635.md ../../docs/vite-upstream-issue-irregexp.md docs/ && cp ../../CHANGELOG.md CHANGELOG.md && cp ../../DESIGN.md DESIGN.md && rm -rf examples && cp -r ../../examples examples && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/gen-runtime.mjs && tsup src/index.ts src/pages.ts src/config.ts src/vue.ts src/context.ts --format esm,cjs --dts --external vite --target node18 --clean && esbuild src/cli.ts --bundle --format=esm --target=node18 --platform=node --outfile=dist/cli.js && esbuild src/runtime/index.ts --bundle --format=esm --target=es2022 --minify --outfile=dist/runtime.js && node scripts/check-gzip.mjs && node scripts/check-manual-codes.mjs",
73
73
  "dev": "tsup --watch",
74
74
  "test": "vitest run",
75
75
  "typecheck": "tsc --noEmit",