From 61b6c551cc8b6a5e0b2be5d454bf3554d4332f06 Mon Sep 17 00:00:00 2001 From: lzxb <1340641314@qq.com> Date: Wed, 30 Oct 2024 19:32:22 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docs/guide/_meta.json | 1 - docs/docs/guide/index.mdx | 11 ++++++----- docs/docs/guide/start/why.mdx | 5 ----- 3 files changed, 6 insertions(+), 11 deletions(-) delete mode 100644 docs/docs/guide/start/why.mdx diff --git a/docs/docs/guide/_meta.json b/docs/docs/guide/_meta.json index 1febe5a8..fbea12eb 100644 --- a/docs/docs/guide/_meta.json +++ b/docs/docs/guide/_meta.json @@ -4,7 +4,6 @@ "label": "开始" }, "index", - "start/why", "start/getting-started", { "type": "section-header", diff --git a/docs/docs/guide/index.mdx b/docs/docs/guide/index.mdx index c7beb37b..fb324ff3 100644 --- a/docs/docs/guide/index.mdx +++ b/docs/docs/guide/index.mdx @@ -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 diff --git a/docs/docs/guide/start/why.mdx b/docs/docs/guide/start/why.mdx deleted file mode 100644 index 4aa2b09b..00000000 --- a/docs/docs/guide/start/why.mdx +++ /dev/null @@ -1,5 +0,0 @@ -# 为什么选 Gez -目前社区类微服务的解决方案基本可以分为 iframe、micro-app、module federation 三种代表。其中 iframe 和 micro-app 这种模式只适合对已有的老项目进行缝合,是以降低程序运行效率所做的一种妥协,而 module federation 的接入成本较高,里面又是一个黑盒子,一旦出了问题,都十分难以排查。 - -Gez 完全是基于 ESM 模块系统进行设计,默认支持 SSR,每个服务都可以对外导出模块,也可以使用外部模块,整个过程简单透明,能够精准的控制依赖管理。最重要的是在客户端可以使用 `importmap` 将不同服务的导出映射成具有内容哈希缓存的文件。 -