跨平台部署
Cross-Platform Deployment
单代码库部署到Web/Desktop/Mobile:PWA、Electron、Capacitor/iOS
子问题
1.平台特定代码隔离
2.共享UI组件
3.IPC通信抽象
4.原生能力桥接
5.大资产跨平台分发(S3外置 vs asar打包 vs CDN)
6.多窗口生命周期依赖管理
7.编译时平台分支与Tree-shaking优化
8.路由/布局多源合并与平台级排除
各项目的解法1 solutions
Signals
横向对比
| 维度 | AIRI |
|---|---|
| 平台覆盖 | PWA + Electron + Capacitor iOS + VitePress 四平台 |
| 共享策略 | pnpm workspace 源码直引,stage-ui/shared/pages/layouts 四包共享 |
| 平台分支 | 编译时 define 注入 RUNTIME_ENVIRONMENT,isStageX() 三函数分支 |
| IPC 抽象 | eventa 类型化事件协议 + contextBridge preload 暴露 |
| 构建工具 | Vite + electron-vite + Capacitor CLI + VitePress 统一 Vite 生态 |
| 大资产处理 | WarpDrivePlugin S3 外置 WASM/TTF/VRM,Electron 打包进 asar |
| 窗口管理 | injeca DI 框架声明式依赖拓扑排序管理 10+ 窗口 |
| 路由共享 | unplugin-vue-router routesFolder 多目录源 + 平台级排除 |
最佳实践
1.使用stage-shared/stage-ui抽取跨平台共享逻辑
2.编译时define注入平台标识实现零运行时开销分支
3.共享包不预构建直接源码引用减少构建链复杂度
4.用DI框架管理Electron多窗口拓扑依赖
5.pnpm catalog统一monorepo依赖版本