Skip to content

Commit

Permalink
docs: 更新文档
Browse files Browse the repository at this point in the history
  • Loading branch information
lzxb committed Oct 30, 2024
1 parent 5c244dc commit 61b6c55
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 11 deletions.
1 change: 0 additions & 1 deletion docs/docs/guide/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"label": "开始"
},
"index",
"start/why",
"start/getting-started",
{
"type": "section-header",
Expand Down
11 changes: 6 additions & 5 deletions docs/docs/guide/index.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# 介绍
Gez 是 Genesis 迭代的第三个大版本,`v1.0` 是通过 HTTP 请求来实现的远程组件,`v2.0` 是通过 Module Federation v1.0
实现的远程组件。随着主流浏览器都已经支持 ESM,这使得设计一款基于 ESM 的[模块链接](./essentials/module-link.mdx)系统变成了可能。随着 Rspack v1.0 的发布,提供了对 ESM 更加友好的支持,这使得我们可以将可能变成了现实。于是,我们将 `v3.0` 版本命名为 `Gez`
实现的远程组件。随着主流浏览器都已经支持 ESM,这使得设计一款基于 ESM 的[模块链接](./essentials/module-link.mdx)系统变成了可能。随着 Rspack v1.0 的发布,提供了对 ESM 更加友好的支持,这使得我们可以将可能变成了现实。于是,我们将 `v3.0` 版本命名为 `Gez`

## 为什么选 Gez
目前社区类微服务的解决方案基本可以分为 iframe、micro-app、module federation 三种代表。其中 iframe 和 micro-app 这种模式只适合对已有的老项目进行缝合,是以降低程序运行效率所做的一种妥协,而 module federation 的接入成本较高,里面又是一个黑盒子,一旦出了问题,都十分难以排查。

Gez 完全是基于 ESM 模块系统进行设计,默认支持 SSR,每个服务都可以对外导出模块,也可以使用外部模块,整个过程简单透明,能够精准的控制依赖管理。最重要的是在客户端可以使用 `importmap` 将不同服务的导出映射成具有内容哈希缓存的文件。

## 为什么放弃 Module Federation
- 本地开发调试不友好
- 内部实现复杂度较高,出了问题较难排查
- 依赖共享无法精确使用哪个服务的依赖
## 调研
- 参考了 Vite 对现代 JavaScript 支持的定义,以浏览器支持 [ESM dynamic import](https://caniuse.com/es6-module-dynamic-import)[import.meta](https://caniuse.com/mdn-javascript_operators_import_meta) 作为基准
- Chrome >=87
Expand Down
5 changes: 0 additions & 5 deletions docs/docs/guide/start/why.mdx

This file was deleted.

0 comments on commit 61b6c55

Please sign in to comment.