/** * Stago 平台 Module Federation 共享依赖约定 * Host(Vite)与 Remote(Vite 模块)须与此对齐 */ interface MfSharedDependency { singleton?: boolean; requiredVersion?: string; strictVersion?: boolean; /** 宿主预加载,Remote 挂载时可直接复用 */ eager?: boolean; /** false = 不打包进 Remote,必须由 Host 提供 */ import?: boolean; } type MfSharedConfig = Record; /** * 宿主 shared 配置(apps/web/vite.config.ts) * eager: 底座启动时加载,避免 Remote 报 "must be provided by host" */ declare const stagoHostShared: { react: { eager: true; singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; 'react-dom': { eager: true; singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; 'react-dom/client': { singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; 'react/jsx-runtime': { singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; antd: { singleton: true; requiredVersion: string; strictVersion: false; eager: true; }; '@ant-design/icons': { singleton: true; requiredVersion: string; strictVersion: false; }; '@stago/sdk': { singleton: true; requiredVersion: string; strictVersion: false; eager: true; }; }; /** * Remote 模块 shared 配置(vite.config.ts federation.shared) * import: false → 依赖宿主提供,减小模块包体积 * * 不含 `@ant-design/icons`:MF Vite 1.18+(Rolldown)在 import:false 下无法解析该包 * named exports(入口含 `export { default }`),会导致 remote 生产构建 MISSING_EXPORT。 * Remote 用命名导入即可 tree-shake;宿主仍通过 stagoHostShared 持有 icons。 */ declare const stagoRemoteShared: { react: { import: false; singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; 'react-dom': { import: false; singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; 'react-dom/client': { import: false; singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; 'react/jsx-runtime': { import: false; singleton: true; requiredVersion: "^19.0.0"; strictVersion: false; }; antd: { singleton: true; requiredVersion: string; strictVersion: false; import: false; }; '@stago/sdk': { singleton: true; requiredVersion: string; import: false; }; }; /** 写入 module.json federation.shared 元数据的包名列表(与 stagoRemoteShared 对齐) */ declare const stagoMfSharedPackageNames: readonly ["react", "react-dom", "react-dom/client", "react/jsx-runtime", "antd", "@stago/sdk"]; export { type MfSharedConfig, type MfSharedDependency, stagoHostShared, stagoMfSharedPackageNames, stagoRemoteShared };