基于远端模块的前端微服务

Tags
webapp
Created
Apr 13, 2020 6:24 AM

// 不再关心 css 隔离和 js 隔离

// 只是使用规范和约束来保证正常运行

新方案:

  • 使用 CSS @scope // 构建子应用自动添加
  • 依赖使用 esm bundle 进行复用
  • 自身代码使用 esm // 不需要使用模块联邦
    • 使用 import map 避免 hash 传递性改变

实质是解决普通 SPA 的两个问题:打包,更新

目标:

  • 独立部署模块 // 只 re-load 发布的模块
  • 保证开发效率 // 只 re-build 当前开发模块
  • 保证加载效率 // 以原生速度加载执行一次

方案:

  • SPA
  • multi-entry
  • 从 manifest 加载远端模块 // jspm & import-map / systemjs
  • config // 使用开发服务时只加载关心的模块
  • 样式内嵌在模块中 // 保持加载简单

开发流程:

  • npm run start:pageA // 开始开发
  • npm run build:pageA
  • npm run publish
SuperMade with Super