ssr-plugin-react 6.2.85 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +74 -0
- package/README.md +63 -53
- package/cjs/entry/context.d.ts +0 -1
- package/cjs/entry/context.d.ts.map +1 -1
- package/cjs/entry/context.js +1 -2
- package/cjs/entry/context.js.map +1 -1
- package/cjs/entry/create.d.ts +0 -1
- package/cjs/entry/create.d.ts.map +1 -1
- package/cjs/entry/create.js +2 -2
- package/cjs/entry/create.js.map +1 -1
- package/cjs/entry/{client-entry.d.ts → react17-client-entry.d.ts} +1 -2
- package/cjs/entry/react17-client-entry.d.ts.map +1 -0
- package/cjs/entry/{client-entry.js → react17-client-entry.js} +11 -7
- package/cjs/entry/react17-client-entry.js.map +1 -0
- package/{esm/entry/client-entry.d.ts → cjs/entry/react18-client-entry.d.ts} +1 -2
- package/cjs/entry/react18-client-entry.d.ts.map +1 -0
- package/cjs/entry/react18-client-entry.js +62 -0
- package/cjs/entry/react18-client-entry.js.map +1 -0
- package/cjs/entry/server-entry.d.ts +0 -1
- package/cjs/entry/server-entry.d.ts.map +1 -1
- package/cjs/entry/server-entry.js +16 -4
- package/cjs/entry/server-entry.js.map +1 -1
- package/cjs/index.d.ts +0 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +28 -37
- package/cjs/index.js.map +1 -1
- package/esm/entry/context.d.ts +0 -1
- package/esm/entry/context.d.ts.map +1 -1
- package/esm/entry/context.js.map +1 -1
- package/esm/entry/create.d.ts +0 -1
- package/esm/entry/create.d.ts.map +1 -1
- package/esm/entry/create.js.map +1 -1
- package/esm/entry/react17-client-entry.d.ts +3 -0
- package/esm/entry/react17-client-entry.d.ts.map +1 -0
- package/esm/entry/{client-entry.js → react17-client-entry.js} +11 -7
- package/esm/entry/react17-client-entry.js.map +1 -0
- package/esm/entry/react18-client-entry.d.ts +3 -0
- package/esm/entry/react18-client-entry.d.ts.map +1 -0
- package/esm/entry/react18-client-entry.js +59 -0
- package/esm/entry/react18-client-entry.js.map +1 -0
- package/esm/entry/server-entry.d.ts +0 -1
- package/esm/entry/server-entry.d.ts.map +1 -1
- package/esm/entry/server-entry.js +17 -5
- package/esm/entry/server-entry.js.map +1 -1
- package/esm/index.d.ts +0 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +28 -22
- package/esm/index.js.map +1 -1
- package/package.json +24 -52
- package/src/entry/create.ts +0 -1
- package/src/entry/{client-entry.tsx → react17-client-entry.tsx} +37 -35
- package/src/entry/react18-client-entry.tsx +80 -0
- package/src/entry/server-entry.tsx +20 -5
- package/src/index.ts +30 -23
- package/.turbo/turbo-build.log +0 -7
- package/cjs/config/base.d.ts +0 -4
- package/cjs/config/base.d.ts.map +0 -1
- package/cjs/config/base.js +0 -49
- package/cjs/config/base.js.map +0 -1
- package/cjs/config/client.d.ts +0 -5
- package/cjs/config/client.d.ts.map +0 -1
- package/cjs/config/client.js +0 -54
- package/cjs/config/client.js.map +0 -1
- package/cjs/config/index.d.ts +0 -3
- package/cjs/config/index.d.ts.map +0 -1
- package/cjs/config/index.js +0 -19
- package/cjs/config/index.js.map +0 -1
- package/cjs/config/server.d.ts +0 -6
- package/cjs/config/server.d.ts.map +0 -1
- package/cjs/config/server.js +0 -39
- package/cjs/config/server.js.map +0 -1
- package/cjs/entry/client-entry.d.ts.map +0 -1
- package/cjs/entry/client-entry.js.map +0 -1
- package/cjs/tools/vite.d.ts +0 -9
- package/cjs/tools/vite.d.ts.map +0 -1
- package/cjs/tools/vite.js +0 -142
- package/cjs/tools/vite.js.map +0 -1
- package/cjs/tools/webpack.d.ts +0 -3
- package/cjs/tools/webpack.d.ts.map +0 -1
- package/cjs/tools/webpack.js +0 -23
- package/cjs/tools/webpack.js.map +0 -1
- package/esm/config/base.d.ts +0 -4
- package/esm/config/base.d.ts.map +0 -1
- package/esm/config/base.js +0 -46
- package/esm/config/base.js.map +0 -1
- package/esm/config/client.d.ts +0 -5
- package/esm/config/client.d.ts.map +0 -1
- package/esm/config/client.js +0 -51
- package/esm/config/client.js.map +0 -1
- package/esm/config/index.d.ts +0 -3
- package/esm/config/index.d.ts.map +0 -1
- package/esm/config/index.js +0 -3
- package/esm/config/index.js.map +0 -1
- package/esm/config/server.d.ts +0 -6
- package/esm/config/server.d.ts.map +0 -1
- package/esm/config/server.js +0 -36
- package/esm/config/server.js.map +0 -1
- package/esm/entry/client-entry.d.ts.map +0 -1
- package/esm/entry/client-entry.js.map +0 -1
- package/esm/tools/vite.d.ts +0 -9
- package/esm/tools/vite.d.ts.map +0 -1
- package/esm/tools/vite.js +0 -134
- package/esm/tools/vite.js.map +0 -1
- package/esm/tools/webpack.d.ts +0 -3
- package/esm/tools/webpack.d.ts.map +0 -1
- package/esm/tools/webpack.js +0 -18
- package/esm/tools/webpack.js.map +0 -1
- package/src/config/base.ts +0 -57
- package/src/config/client.ts +0 -62
- package/src/config/index.ts +0 -2
- package/src/config/server.ts +0 -43
- package/src/tools/vite.ts +0 -134
- package/src/tools/webpack.ts +0 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,77 @@
|
|
|
1
|
+
## [7.0.1](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.84...plugin-react@7.0.1) (2025-08-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* analyze ([2b3879c](https://github.com/zhangyuang/ssr/commit/2b3879cf10009ed7128f7da101518e2bc93abc8a))
|
|
7
|
+
* compile error ([6be2a8f](https://github.com/zhangyuang/ssr/commit/6be2a8ffb65edd91ad8bc9b0ef66a338a8de4218))
|
|
8
|
+
* set currentRouter path when use memoryHistory in client ([df7b040](https://github.com/zhangyuang/ssr/commit/df7b040035e39400e3c6ed8256ab0fb0e08f3c61))
|
|
9
|
+
* use req.url instead of req.path ([b3e9729](https://github.com/zhangyuang/ssr/commit/b3e972964de7191f2cfb6aa3852a7de8c2fe2b99))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* add biome.json in example ([b474e2b](https://github.com/zhangyuang/ssr/commit/b474e2bce5e31595fd0297786a76c94f0efd8dd6))
|
|
15
|
+
* add plugin-react-oxc ([80ae3bc](https://github.com/zhangyuang/ssr/commit/80ae3bc4c6d39075bb8554822350d5e45f4a8b65))
|
|
16
|
+
* add rspack ([f3e4216](https://github.com/zhangyuang/ssr/commit/f3e42167db9ab0b1152ca978f5d7391d6de6c0cf))
|
|
17
|
+
* add rspack skip ci ([62d49ca](https://github.com/zhangyuang/ssr/commit/62d49caa0694899930747c60ad1f8cc168f2efba))
|
|
18
|
+
* add vite rolldown ([2f348cf](https://github.com/zhangyuang/ssr/commit/2f348cf0ee9ab923b476e284d77c804d4341f9c5))
|
|
19
|
+
* add wrap-micro-scope-plugin ([39da637](https://github.com/zhangyuang/ssr/commit/39da63718930490db4f99845d8df20b5636f2c39))
|
|
20
|
+
* adjust history order ([67ea802](https://github.com/zhangyuang/ssr/commit/67ea80211140cb4aa018d04789c0cc006e39e438))
|
|
21
|
+
* set asset emit to false in rspack server side ([112bc07](https://github.com/zhangyuang/ssr/commit/112bc07775f60c6c82a5c121e7e1efbe592e5712))
|
|
22
|
+
* set request router info in csr mode for vue3 ([fa7a59d](https://github.com/zhangyuang/ssr/commit/fa7a59dd36ebb69af988832ac373409201f89659))
|
|
23
|
+
* set vue router url with all render modes ([b58f828](https://github.com/zhangyuang/ssr/commit/b58f8281b684f042e0434f87a5d9ce96addfc04a))
|
|
24
|
+
* support clientHistoryRouterMode ([5ce75ac](https://github.com/zhangyuang/ssr/commit/5ce75ac352ede9c9af5461c92491f738af892eda))
|
|
25
|
+
* support handle external in server ([a804514](https://github.com/zhangyuang/ssr/commit/a804514371a4ea8a7705fb2785d3ae6d96ac2da2))
|
|
26
|
+
* support window.ssrRequestPath inject for memoryHistory in vue3 ([ca99c5d](https://github.com/zhangyuang/ssr/commit/ca99c5dd5fed3c1bcd2c440991f7b08bc6f961b3))
|
|
27
|
+
* update default source-map type ([4f0543d](https://github.com/zhangyuang/ssr/commit/4f0543df75611bf5e641943f46e639c4630954a3))
|
|
28
|
+
* upgrade typescript to v5 ([12f3bed](https://github.com/zhangyuang/ssr/commit/12f3bed51cf94274eb050efae9a1994d71a9b095))
|
|
29
|
+
* use biome replace eslint ([8740d4d](https://github.com/zhangyuang/ssr/commit/8740d4dbc66e7f034857f229a04be91ee2aff609))
|
|
30
|
+
* use micro plugin in dev ([671ba69](https://github.com/zhangyuang/ssr/commit/671ba695747a00297d640869dcf9d3437944dd58))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## [7.0.1-beta.0](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.84...plugin-react@7.0.1-beta.0) (2025-07-26)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* analyze ([2b3879c](https://github.com/zhangyuang/ssr/commit/2b3879cf10009ed7128f7da101518e2bc93abc8a))
|
|
40
|
+
* compile error ([6be2a8f](https://github.com/zhangyuang/ssr/commit/6be2a8ffb65edd91ad8bc9b0ef66a338a8de4218))
|
|
41
|
+
* dependencies manage skip ci ([dae88a8](https://github.com/zhangyuang/ssr/commit/dae88a875967a73586e1745ba1e605702eadd0d3))
|
|
42
|
+
* set currentRouter path when use memoryHistory in client ([df7b040](https://github.com/zhangyuang/ssr/commit/df7b040035e39400e3c6ed8256ab0fb0e08f3c61))
|
|
43
|
+
* webpack type skip ci ([30f00f9](https://github.com/zhangyuang/ssr/commit/30f00f908d8d30039de8fc45d1a638b470763ffd))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Features
|
|
47
|
+
|
|
48
|
+
* add biome.json in example ([b474e2b](https://github.com/zhangyuang/ssr/commit/b474e2bce5e31595fd0297786a76c94f0efd8dd6))
|
|
49
|
+
* add link-workspace-packages ([de2ba17](https://github.com/zhangyuang/ssr/commit/de2ba171579cfaa1f8c73c35c7de84d51abd4a84))
|
|
50
|
+
* add wrap-micro-scope-plugin ([39da637](https://github.com/zhangyuang/ssr/commit/39da63718930490db4f99845d8df20b5636f2c39))
|
|
51
|
+
* adjust history order ([67ea802](https://github.com/zhangyuang/ssr/commit/67ea80211140cb4aa018d04789c0cc006e39e438))
|
|
52
|
+
* change dependencies in pkg to workspace ([f5320eb](https://github.com/zhangyuang/ssr/commit/f5320eb06f73f0410b27248dcb622ce793de740c))
|
|
53
|
+
* change version to 7.0.0 set dependencies to workspace skip ci ([152af0b](https://github.com/zhangyuang/ssr/commit/152af0b9f87db08769a1ec62a59cce4eb6276779))
|
|
54
|
+
* remove plugin-react18 hoc-react18 update plugin-react skip ci ([f6968f7](https://github.com/zhangyuang/ssr/commit/f6968f78c4aa4b350a4bc272089c53bbb4aabe1e))
|
|
55
|
+
* set request router info in csr mode for vue3 ([fa7a59d](https://github.com/zhangyuang/ssr/commit/fa7a59dd36ebb69af988832ac373409201f89659))
|
|
56
|
+
* set vue router url with all render modes ([b58f828](https://github.com/zhangyuang/ssr/commit/b58f8281b684f042e0434f87a5d9ce96addfc04a))
|
|
57
|
+
* split client-entry to 17 and 18 ([3f0d6df](https://github.com/zhangyuang/ssr/commit/3f0d6dfba7fbd36a9969bfba37e8f086e4d72917))
|
|
58
|
+
* support clientHistoryRouterMode ([5ce75ac](https://github.com/zhangyuang/ssr/commit/5ce75ac352ede9c9af5461c92491f738af892eda))
|
|
59
|
+
* support handle external in server ([a804514](https://github.com/zhangyuang/ssr/commit/a804514371a4ea8a7705fb2785d3ae6d96ac2da2))
|
|
60
|
+
* support window.ssrRequestPath inject for memoryHistory in vue3 ([ca99c5d](https://github.com/zhangyuang/ssr/commit/ca99c5dd5fed3c1bcd2c440991f7b08bc6f961b3))
|
|
61
|
+
* update default source-map type ([4f0543d](https://github.com/zhangyuang/ssr/commit/4f0543df75611bf5e641943f46e639c4630954a3))
|
|
62
|
+
* update plugin-react skip ci ([205baed](https://github.com/zhangyuang/ssr/commit/205baed3093185e2cc928392a378a221f01912f9))
|
|
63
|
+
* update plugin-react skip ci ([a481d83](https://github.com/zhangyuang/ssr/commit/a481d83dd43498265eb3d1b7814902ce59bceac0))
|
|
64
|
+
* update plugin-vue skip ci ([17824e0](https://github.com/zhangyuang/ssr/commit/17824e0008e2737fe381d46b030543f4aec185ad))
|
|
65
|
+
* update ssr-vite skip ci ([4b1e435](https://github.com/zhangyuang/ssr/commit/4b1e435c92c68099902cb06ea5673e46912d48a0))
|
|
66
|
+
* update vite logic skip ci ([33944e6](https://github.com/zhangyuang/ssr/commit/33944e64c70200dcaf77ce67012ff8b086e78318))
|
|
67
|
+
* update vite logic skip ci ([9425ef9](https://github.com/zhangyuang/ssr/commit/9425ef989afaabb995c8daf4a95b4c6ff8fa5138))
|
|
68
|
+
* upgrade typescript to v5 ([12f3bed](https://github.com/zhangyuang/ssr/commit/12f3bed51cf94274eb050efae9a1994d71a9b095))
|
|
69
|
+
* use biome replace eslint ([8740d4d](https://github.com/zhangyuang/ssr/commit/8740d4dbc66e7f034857f229a04be91ee2aff609))
|
|
70
|
+
* use micro plugin in dev ([671ba69](https://github.com/zhangyuang/ssr/commit/671ba695747a00297d640869dcf9d3437944dd58))
|
|
71
|
+
* use pnpm10 skip ci ([0975924](https://github.com/zhangyuang/ssr/commit/0975924a662f72cc8590bbe723851471c2e91253))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
1
75
|
## [6.2.85](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.84...plugin-react@6.2.85) (2024-10-23)
|
|
2
76
|
|
|
3
77
|
|
package/README.md
CHANGED
|
@@ -15,33 +15,45 @@
|
|
|
15
15
|
<div align="center">
|
|
16
16
|
<a href="https://github.com/zhangyuang/ssr/actions" target="_blank"><img src="https://github.com/zhangyuang/ssr/workflows/CI/badge.svg" alt="githubActions" />
|
|
17
17
|
<a href="https://www.cypress.io/" target="_blank"><img src="https://img.shields.io/badge/cypress-dashboard-brightgreen.svg" alt="cypress" />
|
|
18
|
-
<a href="https://github.com/zhangyuang/ssr" target="_blank"><img src="https://img.shields.io/badge/node-%3E=
|
|
18
|
+
<a href="https://github.com/zhangyuang/ssr" target="_blank"><img src="https://img.shields.io/badge/node-%3E=20-green.svg?color=4dc71f" alt="Node" ></a>
|
|
19
19
|
<a href="https://github.com/zhangyuang/ssr" target="_blank"><img src="https://img.shields.io/github/stars/zhangyuang/ssr.svg?color=4dc71f" alt="Node" ></a>
|
|
20
20
|
</div>
|
|
21
21
|
<br />
|
|
22
22
|
|
|
23
23
|
|
|
24
|
+
## 7.x 版本
|
|
25
|
+
|
|
26
|
+
`ssr` 框架 `7.x` 版本正在紧密开发中,在 `7.x` 版本中我们将会同时支持 `Webpack` , `Rspack` , `Rolldown-Vite` 三种构建工具来极大的加快构建性能。同时在使用方式上和 `6.x` 版本保持一致,用户可以无缝的从 `6.x` 版本迁移到 `7.x` 版本。
|
|
27
|
+
|
|
28
|
+
同时在 `7.x` 版本我们设计精简了依赖项,开发者可以只安装当前使用的前端框架和构建工具的依赖项。未使用到的构建工具的相关依赖将不会被安装。
|
|
29
|
+
|
|
30
|
+
## 简介
|
|
31
|
+
|
|
24
32
|
`ssr` 框架是为前端框架在服务端渲染的场景下所打造的开箱即用的服务端渲染框架。了解什么是服务端渲染请查看[文档](http://doc.ssr-fc.com/docs/features$ssr)
|
|
25
33
|
|
|
26
|
-
此框架脱胎于 [egg-react-ssr](https://github.com/zhangyuang/egg-react-ssr) 项目和 `ssr` v4
|
|
34
|
+
此框架脱胎于 [egg-react-ssr](https://github.com/zhangyuang/egg-react-ssr) 项目和 `ssr` v4版本 `(midway-faas + react ssr)` ,在之前的基础上做了诸多演进,通过插件化的代码组织形式,支持任意服务端框架与任意前端框架的组合使用。开发者可以选择通过 `Serverless` 方式部署或是以传统 `Node.js` 的应用形式部署,并且我们专注于提升 `Serverless` 场景下服务端渲染应用的开发体验,打造了一站式的开发,发布应用服务的功能。最大程度提升开发者的开发体验,将应用的开发,部署成本降到最低。
|
|
35
|
+
|
|
36
|
+
在最新的版本中,同时支持 `React17/18/19` 和 `Vue2/Vue3` 作为服务端渲染的前端框架,开发工具侧我们同时支持了 `Vite|Webpack|Rspack` 来提升应用的启动速度,构建速度和 HMR 速度。
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
在 `Node.js` 框架中,官方默认的 `example` 提供了基于 `Nest.js` 和 `Midway.js` 这两个流行的 `Node.js` 框架与 `ssr` 框架集成示例。当然 `ssr` 框架在设计上不与任何 `Node.js` 框架耦合,开发者可以自由选择使用任何 `Node.js` 框架。
|
|
29
39
|
|
|
30
|
-
|
|
40
|
+
如果你选择的是 `Midway.js` 作为 `Node.js` 框架,那么可以直接使用内置的 `ssr deploy` 命令来一键部署应用到 `阿里云` 或 `腾讯云` 平台。
|
|
41
|
+
|
|
42
|
+
阅读我们的 [官方文档](http://doc.ssr-fc.com/) 获得更加详细的了解。事实上文档本身便是用 `ssr` 框架开发并部署到阿里云 `Serverless` 服务。
|
|
31
43
|
|
|
32
44
|

|
|
33
45
|
|
|
34
46
|
## 什么情况下你应该选择 ssr 框架
|
|
35
47
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
* 需要在 `Node.js` 与前端框架结合的场景使用,与其他纯前端的框架不同 `ssr` 框架是专为服务端渲染场景或者 `Node.js` 与前端结合的场景打造的框架
|
|
49
|
+
* 需要一个开箱即用的服务端渲染能力,不需要手动去组合不同的前端框架与服务端框架之间的联系
|
|
50
|
+
* 需要框架层面的渲染降级能力,在服务端渲染出错时自动降级到客户端渲染
|
|
51
|
+
* 需要一个配置简单逻辑清晰的框架, `ssr` 框架的渲染逻辑和应用构建逻辑是同类型框架中最清晰的
|
|
52
|
+
* 可能会改动技术栈,如从 `Vue2` 升级为 `Vue3`,从 `Vue3` 降级为 `Vue2` 或 `React/Vue` 互相切换
|
|
53
|
+
* 需要在服务端渲染场景下开箱即用使用 `antd` `vant` 等流行 `ui` 库
|
|
54
|
+
* 需要能够同时支持 `Webpack`, `Vite` 两种开发工具,以便同时得到快速的启动速度 `HMR` 速度以及稳定的生产环境代码
|
|
55
|
+
* 需要在 `Vue3 SSR` 使用 [pinia](https://pinia.vuejs.org/) 作为数据管理方案
|
|
56
|
+
* 只是单纯的需要一个更快更好用的 `cra` 或 `vue-cli`, `ssr` 框架在纯 `csr` 场景的支持也十分优秀
|
|
45
57
|
|
|
46
58
|
## 哪些应用在使用
|
|
47
59
|
|
|
@@ -52,18 +64,18 @@
|
|
|
52
64
|
<td align="center"><a target="_blank" href="http://youku.com/"><img src="https://img.alicdn.com/tfs/TB17DTuXkH0gK0jSZPiXXavapXa-680-133.svg" width="120"/><br />
|
|
53
65
|
<sub><b>优酷视频
|
|
54
66
|
</b></td>
|
|
55
|
-
<td align="center" style="width: 120px;"><a target="_blank" href="#"><img src="https://wxa-shop-1258344707.cos.ap-shanghai.myqcloud.com/test/cdn/c8e49fda-d8ef-4332-a2c0-8c9e571883f5.jpeg?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDtb4HEuJSLyJNCk11kCNHvIPGp8AvQfdK%26q-sign-time%3D1653378495%3B4294967040%26q-key-time%3D1653378495%3B4294967040%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3D2d09dc5ceec264a030da16b747477adf0ae5b647
|
|
67
|
+
<td align="center" style="width: 120px; "><a target="_blank" href="#"><img src="https://wxa-shop-1258344707.cos.ap-shanghai.myqcloud.com/test/cdn/c8e49fda-d8ef-4332-a2c0-8c9e571883f5.jpeg?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDtb4HEuJSLyJNCk11kCNHvIPGp8AvQfdK%26q-sign-time%3D1653378495%3B4294967040%26q-key-time%3D1653378495%3B4294967040%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3D2d09dc5ceec264a030da16b747477adf0ae5b647
|
|
56
68
|
" width="120"/><br><sub><b>微信公众平台
|
|
57
69
|
</b></sub></a></td>
|
|
58
70
|
<td align="center" style="height: 100px"><a href="#" target="_blank"><img src="https://res.wx.qq.com/op_res/wy4vvtyfqW8HjIfBKjba6TNEFBHuAApjJ1FjSQ37OVIdIYtylmiBm2ZeJ79SRtmT4IipU69bDNDw0Rrdnjd9yg
|
|
59
|
-
" width="200px;margin: 20px 0" /><br />
|
|
71
|
+
" width="200px; margin: 20px 0" /><br />
|
|
60
72
|
<a href="#" target="_bvlank"><b>腾讯体育
|
|
61
73
|
</b></a></td>
|
|
62
74
|
<td align="center" style="height: 100px"><a href="#" target="_blank"><img src="https://res.wx.qq.com/op_res/qc0sXfbvOvZFKVaDy9OLsqHfwHg6U4AemN2MP6YUxEo0EWpK6RyRcj70bIf3GEg5y_WA1wuv4HcfYi2FP7Awkw
|
|
63
|
-
" width="200px;margin: 20px 0" /><br />
|
|
75
|
+
" width="200px; margin: 20px 0" /><br />
|
|
64
76
|
<a href="#" target="_bvlank"><b>QQ会员
|
|
65
77
|
</b></a></td>
|
|
66
|
-
<td align="center" style="height: 100px"><a href="https://m.film.qq.com/x/tva-vip-center/" target="_blank"><img src="https://res.wx.qq.com/op_res/x7sWI9AfUK1QwH0EDhKp4e_bGWxYOQ_1RlZqBFy9JntJzaE4aRzNhVgmxLNloAFpSQ-mBr9X9pux3QlV9QHHvQ" width="200px;margin: 20px 0" /><br />
|
|
78
|
+
<td align="center" style="height: 100px"><a href="https://m.film.qq.com/x/tva-vip-center/" target="_blank"><img src="https://res.wx.qq.com/op_res/x7sWI9AfUK1QwH0EDhKp4e_bGWxYOQ_1RlZqBFy9JntJzaE4aRzNhVgmxLNloAFpSQ-mBr9X9pux3QlV9QHHvQ" width="200px; margin: 20px 0" /><br />
|
|
67
79
|
<a href="https://m.film.qq.com/x/tva-vip-center/" target="_bvlank"><b>腾讯视频
|
|
68
80
|
</b></a></td>
|
|
69
81
|
<td align="center"><a href="https://www.niuniuda.com/mall" target="_blank"><img src="https://img.alicdn.com/tfs/TB1df_8pBr0gK0jSZFnXXbRRXXa-160-60.png" width="120" alt="牛牛搭"/><br />
|
|
@@ -94,10 +106,10 @@
|
|
|
94
106
|
<td align="center"><a href="https://www.100.com/" target="_blank"><img src="https://oss.bs2dl.100.com/hippo/config/f13ee98cfca7ce13888752c1261081b44bd356fd.png" width="120" /><br />
|
|
95
107
|
<a href="https://www.100.com/" target="_bvlank"><sub><b>100教育
|
|
96
108
|
</b></a></td>
|
|
97
|
-
<td align="center" style="height: 100px"><a href="https://blog.dreamer2q.wang/" target="_blank"><img src="https://res.wx.qq.com/op_res/MxxGgjPFRiTgjiReUefs2aMce-SgNvxxTB9U87YYhcOu6KPw9er7r2Lc0ne-b90nFstTUpc8REDwpxfUreKV1g" width="200px;margin: 20px 0" alt="Dream2qBlog"/><br />
|
|
109
|
+
<td align="center" style="height: 100px"><a href="https://blog.dreamer2q.wang/" target="_blank"><img src="https://res.wx.qq.com/op_res/MxxGgjPFRiTgjiReUefs2aMce-SgNvxxTB9U87YYhcOu6KPw9er7r2Lc0ne-b90nFstTUpc8REDwpxfUreKV1g" width="200px; margin: 20px 0" alt="Dream2qBlog"/><br />
|
|
98
110
|
<a href="https://blog.dreamer2q.wang/" target="_bvlank"><b>个人博客
|
|
99
111
|
</b></a></td>
|
|
100
|
-
<td align="center" style="height: 100px"><a href="https://jiawu.dewu.com" target="_blank"><img src="https://cdn.poizon.com/node-common/31116a45953ad8b468c6c832036aac88.png" width="200px;margin: 20px 0" alt="Dream2qBlog"/><br />
|
|
112
|
+
<td align="center" style="height: 100px"><a href="https://jiawu.dewu.com" target="_blank"><img src="https://cdn.poizon.com/node-common/31116a45953ad8b468c6c832036aac88.png" width="200px; margin: 20px 0" alt="Dream2qBlog"/><br />
|
|
101
113
|
<a href="https://jiawu.dewu.com" target="_bvlank"><b>得物
|
|
102
114
|
</b></a></td>
|
|
103
115
|
<td align="center"><a href="https://www.myweimai.com/#sectionOne" target="_blank"><img src="https://img.alicdn.com/tfs/TB16i3VrQT2gK0jSZPcXXcKkpXa-400-400.jpg" width="120" alt="微脉"/><br />
|
|
@@ -109,14 +121,14 @@
|
|
|
109
121
|
</tr>
|
|
110
122
|
<tr>
|
|
111
123
|
<td align="center" style="height: 100px"><a href="https://www.habisummercamp.com/" target="_blank"><img src="https://res.wx.qq.com/op_res/XXUpF56bDue53vZadoCSPSnqKF3bZqPOQnqsPa_ngEARa0OUIW22pX7eKsftPb6pc5ny62cR_wXM4g5xJ7G3DQ
|
|
112
|
-
" width="200px;margin: 20px 0" alt="Happy"/><br />
|
|
124
|
+
" width="200px; margin: 20px 0" alt="Happy"/><br />
|
|
113
125
|
<a href="https://www.habisummercamp.com/" target="_bvlank"><b>HappyPC
|
|
114
126
|
</b></a></td>
|
|
115
127
|
<td align="center" style="height: 100px"><a href="https://m.habisummercamp.com/" target="_blank"><img src="https://res.wx.qq.com/op_res/XXUpF56bDue53vZadoCSPSnqKF3bZqPOQnqsPa_ngEARa0OUIW22pX7eKsftPb6pc5ny62cR_wXM4g5xJ7G3DQ
|
|
116
|
-
" width="200px;margin: 20px 0" alt="Happy"/><br />
|
|
128
|
+
" width="200px; margin: 20px 0" alt="Happy"/><br />
|
|
117
129
|
<a href="https://m.habisummercamp.com/" target="_bvlank"><b>HappyMobile
|
|
118
130
|
</b></a></td>
|
|
119
|
-
<td align="center" style="width: 120px;"><a target="_blank" href="https://yulebao.alibaba.com/"><img src="https://gw.alicdn.com/tfs/TB1CmlIIFT7gK0jSZFpXXaTkpXa-190-46.png" width="120"/><br><sub><b>阿里影业娱乐宝
|
|
131
|
+
<td align="center" style="width: 120px; "><a target="_blank" href="https://yulebao.alibaba.com/"><img src="https://gw.alicdn.com/tfs/TB1CmlIIFT7gK0jSZFpXXaTkpXa-190-46.png" width="120"/><br><sub><b>阿里影业娱乐宝
|
|
120
132
|
</b></sub></a></td>
|
|
121
133
|
<td align="center"><a target="_blank" href="https://campaign.vmate.com/vrbollywood"><img src="https://img.alicdn.com/tfs/TB17p6Vhbj1gK0jSZFOXXc7GpXa-512-512.png" width="120" alt="vmate 积分商城"/><br />
|
|
122
134
|
<a target="_blank" href="https://job.alibaba.com/zhaopin/position_detail.htm?trace=qrcode_share&positionCode=GP524819"><sub><b>Vmate短视频
|
|
@@ -124,7 +136,7 @@
|
|
|
124
136
|
<td align="center"><a target="_blank" href="https://enjoysales.paat.com/"><img src="https://img.alicdn.com/tfs/TB1Ma0BiEY1gK0jSZFMXXaWcVXa-836-836.png" width="120" alt="火炽星原CRM"/><br />
|
|
125
137
|
<a target="_blank" href="https://enjoysales.paat.com/"><sub><b>火炽星原CRM
|
|
126
138
|
</b></a></td>
|
|
127
|
-
<td align="center" style="height: 100px"><a href="https://www.paixin.com/" target="_blank"><img src="https://www.paixin.com/favicon.ico" width="200px;margin: 20px 0" /><br />
|
|
139
|
+
<td align="center" style="height: 100px"><a href="https://www.paixin.com/" target="_blank"><img src="https://www.paixin.com/favicon.ico" width="200px; margin: 20px 0" /><br />
|
|
128
140
|
<a href="https://www.paixin.com/" target="_bvlank"><b>拍信创意
|
|
129
141
|
</b></a></td>
|
|
130
142
|
<td align="center"><a href="https://www.66tools.com/" target="_blank"><img src="https://cdn.66tools.com/extension/chrome_qrcode_avatar.png" width="120" alt="极速二维码"/><br />
|
|
@@ -144,13 +156,13 @@
|
|
|
144
156
|
|
|
145
157
|
## Features
|
|
146
158
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
159
|
+
* 🌱 极易定制:前端支持 React17/React18/Vue2/Vue3 等现代Web框架;
|
|
160
|
+
* 🚀 开箱即用:内置 10+ 脚手架配套扩展,如 [Pinia](https://pinia.vuejs.org/introduction.html#basic-example)、[antd](https://ant.design/components/overview-cn/)、[vant](https://github.com/youzan/vant)、TypeScript、Hooks等;
|
|
161
|
+
* 🧲 插件驱动:基于插件架构,用户更加专注于业务逻辑;
|
|
162
|
+
* 💯 Serverless优先:一键发布到各种Serverless平台,也支持传统Web Server,比如Egg、Midway、Nest等。
|
|
163
|
+
* 🛡 高可用场景,可无缝从SSR降级到CSR,最佳容灾方案。
|
|
164
|
+
* 😄 功能丰富,构建工具同时支持 Webpack/Vite,支持四种渲染模式 `SSR|CSR|SSG|Html`
|
|
165
|
+
* ✨ 支持 [bun](https://bun.sh/) 作为 js runtime
|
|
154
166
|
|
|
155
167
|
## 已实现的功能
|
|
156
168
|
|
|
@@ -189,17 +201,17 @@
|
|
|
189
201
|
|
|
190
202
|
虽然技术栈不同但开发思想是一致的,在任何技术栈的组合中我们的开发命令, 构建命令以及渲染原理都是完全一致的
|
|
191
203
|
|
|
192
|
-
注意: 在 `Midway.js`
|
|
204
|
+
注意: 在 `Midway.js` `Nest.js` 场景下我们都已实现了一键部署到 `Serverless` 平台的能力。但底层实现略有差异。更加详细的介绍可以阅读 [Serverless](http://doc.ssr-fc.com/docs/features$serverless) 章节。如需要大量使用 `Serverless` 平台提供的能力,我们建议创建 `Midway.js` 类型的应用。强烈建议阅读我们的 [官方文档](http://doc.ssr-fc.com/) 来获得更加详细的了解
|
|
193
205
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
206
|
+
* [nestjs-react-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/nestjs-react-ssr)
|
|
207
|
+
* [nestjs-react18-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/nestjs-react18-ssr)
|
|
208
|
+
* [nestjs-vue-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/nestjs-vue-ssr)
|
|
209
|
+
* [nestjs-vue3-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/nestjs-vue3-ssr)
|
|
210
|
+
* [nestjs-vue3-ssr-pinia](https://github.com/zhangyuang/nestjs-vue3-ssr-pinia)
|
|
211
|
+
* [midway-react-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/midway-react-ssr)
|
|
212
|
+
* [midway-react18-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/midway-react18-ssr)
|
|
213
|
+
* [midway-vue-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/midway-vue-ssr)
|
|
214
|
+
* [midway-vue3-ssr](https://github.com/zhangyuang/ssr/tree/dev/example/midway-vue3-ssr)
|
|
203
215
|
|
|
204
216
|
开发者可根据实际技术栈需要创建不同类型的应用快速开始
|
|
205
217
|
|
|
@@ -214,7 +226,7 @@ $ yarn # 建议使用 yarn, 也可以 npm install
|
|
|
214
226
|
$ yarn start
|
|
215
227
|
$ open http://localhost:3000 # 访问应用
|
|
216
228
|
$ yarn build # 资源构建,等价于 npx ssr build
|
|
217
|
-
$ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
229
|
+
$ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --tools vite
|
|
218
230
|
```
|
|
219
231
|
|
|
220
232
|

|
|
@@ -224,15 +236,14 @@ $ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
|
224
236
|
通过访问以下链接来预览该框架通过 Serverless 一键部署到阿里云/腾讯云服务的应用详情。
|
|
225
237
|
通过使用 queryParams `csr=true` 来让 SSR 服务端渲染模式一键降级为 CSR 客户端渲染模式,也可以通过 `config.js` 来进行配置。
|
|
226
238
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
239
|
+
* http://ssr-fc.com/ 部署到阿里云的 React SSR 应用
|
|
240
|
+
* http://ssr-fc.com?csr=true 部署到阿里云的 React SSR 应用, 以 CSR 模式访问
|
|
241
|
+
* http://tx.ssr-fc.com 部署到腾讯云的 React SSR 应用
|
|
242
|
+
* http://tx.ssr-fc.com?csr=true 部署到腾讯云的 React SSR 应用, 以 CSR 模式访问
|
|
243
|
+
* http://vue.ssr-fc.com 部署到阿里云的 Vue SSR 应用
|
|
244
|
+
* http://vue3.ssr-fc.com 部署到阿里云的 Vue3 SSR 应用
|
|
245
|
+
* http://vue.ssr-fc.com?csr=true 部署到阿里云的 Vue SSR 应用, 以 CSR 模式访问
|
|
246
|
+
* http://vue3.ssr-fc.com?csr=true 部署到阿里云的 Vue3 SSR 应用, 以 CSR 模式访问
|
|
236
247
|
|
|
237
248
|
## 生态系统
|
|
238
249
|
|
|
@@ -251,7 +262,6 @@ $ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
|
251
262
|
| [ssr-types] | [![ssr-types-status]][ssr-types] | provide common types |
|
|
252
263
|
| [ssr-webpack] | [![ssr-webpack-status]][ssr-webpack] | start local server and build production bundle by webpack |
|
|
253
264
|
|
|
254
|
-
|
|
255
265
|
[ssr-status]: https://img.shields.io/npm/v/ssr.svg
|
|
256
266
|
[ssr-core-status]: https://img.shields.io/npm/v/ssr-core.svg
|
|
257
267
|
[ssr-hoc-react-status]: https://img.shields.io/npm/v/ssr-hoc-react.svg
|
|
@@ -265,7 +275,6 @@ $ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
|
265
275
|
[ssr-webpack-status]: https://img.shields.io/npm/v/ssr-webpack.svg
|
|
266
276
|
[ssr-types-status]: https://img.shields.io/npm/v/ssr-types.svg
|
|
267
277
|
|
|
268
|
-
|
|
269
278
|
[ssr]: https://github.com/zhangyuang/ssr/tree/dev/packages/cli
|
|
270
279
|
[ssr-core]: https://github.com/zhangyuang/ssr/tree/dev/packages/core
|
|
271
280
|
[ssr-hoc-react]: https://github.com/zhangyuang/ssr/tree/dev/packages/hoc-react
|
|
@@ -278,6 +287,7 @@ $ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
|
278
287
|
[ssr-plugin-vue3]: https://github.com/zhangyuang/ssr/tree/dev/packages/plugin-vue3
|
|
279
288
|
[ssr-types]: https://github.com/zhangyuang/ssr/tree/dev/packages/types
|
|
280
289
|
[ssr-webpack]: https://github.com/zhangyuang/ssr/tree/dev/packages/webpack
|
|
290
|
+
|
|
281
291
|
## CONTRIBUTING
|
|
282
292
|
|
|
283
293
|
如果你想为本应用贡献代码,请阅读[贡献文档](./CONTRIBUTING.md),我们为你准备了丰富的脚本用于 bootstrap
|
|
@@ -290,7 +300,7 @@ $ yarn start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
|
290
300
|
|
|
291
301
|
虽然我们已经尽力检查了一遍应用,但仍有可能有疏漏的地方,如果你在使用过程中发现任何问题或者建议,欢迎提[issue](https://github.com/zhangyuang/ssr/issues)或者[PR](https://github.com/zhangyuang/ssr/pulls)
|
|
292
302
|
|
|
293
|
-
`注: 由于微信交流群人数限制,进群请添加私人二维码并备注进入 ssr 交流群,由于是私人微信,拉群后将会自行删除好友,敬请谅解。我们更加鼓励通过 issue 和 discussion 来交流问题`
|
|
303
|
+
`注: 由于微信交流群人数限制,进群请添加私人二维码并备注进入 ssr 交流群,由于是私人微信,拉群后将会自行删除好友,敬请谅解。我们更加鼓励通过 issue 和 discussion 来交流问题`
|
|
294
304
|
|
|
295
305
|
<div style="display:flex">
|
|
296
306
|
<!-- <img src="https://res.wx.qq.com/op_res/7F1t4Z8yCHWilehbcFGjAj0yVn0URMiWBGVJa-TVu_eqw5IwUXA2kPYBnfX6YRHy0FVBB-yC6l0IEL02QTJkLg" width="300"> -->
|
package/cjs/entry/context.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/entry/context.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/entry/context.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAoC,MAAM,WAAW,CAAA;AA2BpE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,8GAavC"}
|
package/cjs/entry/context.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppContext =
|
|
3
|
+
exports.AppContext = AppContext;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const create_1 = require("./create");
|
|
6
6
|
const { reducer, state } = create_1.Routes;
|
|
@@ -30,5 +30,4 @@ function AppContext(props) {
|
|
|
30
30
|
}
|
|
31
31
|
}, props.children);
|
|
32
32
|
}
|
|
33
|
-
exports.AppContext = AppContext;
|
|
34
33
|
//# sourceMappingURL=context.js.map
|
package/cjs/entry/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/entry/context.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/entry/context.tsx"],"names":[],"mappings":";;AA4BA,gCAaC;AAzCD,iCAAiD;AAEjD,qCAAiC;AAEjC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,eAAyB,CAAA;AAEpD,MAAM,SAAS,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAA;AAC7B,MAAM,WAAW,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAa,CAAC,CAAA;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAA;AAInD,SAAS,cAAc,CAAC,KAAU,EAAE,MAAc;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,eAAe;YACnB,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;gBACtE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACpB,CAAC;YACD,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IACxC,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAU,EAAE,MAAW;IAC9C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AACnE,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACtH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,kBAAU,EAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAClE,OAAO,IAAA,qBAAa,EACnB,KAAK,CAAC,OAAO,CAAC,QAAQ,EACtB;QACC,KAAK,EAAE;YACN,KAAK;YACL,QAAQ;SACR;KACD,EACD,KAAK,CAAC,QAAe,CACrB,CAAA;AACF,CAAC"}
|
package/cjs/entry/create.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/entry/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/entry/create.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,eAAO,MAAM,MAAM,EAAiD,eAAe,CAAA;AACnF,eAAO,MAAM,gBAAgB,8CAQ5B,CAAA;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,GAAG,OAO5C"}
|
package/cjs/entry/create.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ssrCreateContext = exports.Routes = void 0;
|
|
4
|
+
exports.createStore = createStore;
|
|
4
5
|
const declareRoutes = require("_build/ssr-declare-routes");
|
|
5
6
|
const ManualRoutes = require("_build/ssr-manual-routes");
|
|
6
7
|
const react_1 = require("react");
|
|
@@ -26,5 +27,4 @@ function createStore(initialData) {
|
|
|
26
27
|
}
|
|
27
28
|
return storeInstance;
|
|
28
29
|
}
|
|
29
|
-
exports.createStore = createStore;
|
|
30
30
|
//# sourceMappingURL=create.js.map
|
package/cjs/entry/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/entry/create.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/entry/create.ts"],"names":[],"mappings":";;;AAoBA,kCAOC;AA3BD,2DAA0D;AAC1D,yDAAwD;AACxD,iCAAqC;AACrC,uDAAgD;AAChD,iDAAyC;AAGzC,mCAA8B;AAEjB,QAAA,MAAM,GAAG,IAAA,gCAAa,EAAC,aAAa,EAAE,YAAY,CAAoB,CAAA;AAC5E,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACpC,MAAM,aAAa,GAAG,IAAA,qBAAa,EAAW;QAC7C,KAAK,EAAE,EAAE;KACT,CAAC,CAAA;IACF,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;IACrC,CAAC;IACD,OAAO,aAAa,CAAA;AACrB,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B;AAED,SAAgB,WAAW,CAAC,WAAiB;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,cAAM,CAAA;IACxB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,yBAAS,EAAC,KAAK,CAAC,CAAA;IAC5D,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,cAAK,EAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,OAAO,aAAa,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react17-client-entry.d.ts","sourceRoot":"","sources":["../../src/entry/react17-client-entry.tsx"],"names":[],"mappings":"AAWA,QAAA,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAyD1C,CAAA;AAID,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.clientRender = void 0;
|
|
4
|
+
const react_dom_1 = require("react-dom");
|
|
4
5
|
const react_1 = require("react");
|
|
5
|
-
const ReactDOM = require("react-dom");
|
|
6
|
-
require("react-router"); // for vite prebundle list
|
|
7
6
|
const react_router_dom_1 = require("react-router-dom");
|
|
8
7
|
const ssr_common_utils_1 = require("ssr-common-utils");
|
|
9
8
|
const ssr_hoc_react_1 = require("ssr-hoc-react");
|
|
@@ -21,7 +20,10 @@ const clientRender = async () => {
|
|
|
21
20
|
(0, ssr_common_utils_1.setStore)(store !== null && store !== void 0 ? store : {});
|
|
22
21
|
const baseName = (0, ssr_common_utils_1.isMicro)() ? window.clientPrefix : window.prefix;
|
|
23
22
|
const routes = await (0, ssr_common_utils_1.preloadComponent)(FeRoutes, baseName);
|
|
24
|
-
|
|
23
|
+
const container = document.querySelector((_a = window.ssrDevInfo.rootId) !== null && _a !== void 0 ? _a : '#app');
|
|
24
|
+
const ele = (0, react_1.createElement)(
|
|
25
|
+
//@ts-ignore
|
|
26
|
+
react_router_dom_1.BrowserRouter, {
|
|
25
27
|
basename: baseName
|
|
26
28
|
}, (0, react_1.createElement)(context_1.AppContext, {
|
|
27
29
|
context,
|
|
@@ -34,12 +36,14 @@ const clientRender = async () => {
|
|
|
34
36
|
exact: true,
|
|
35
37
|
key: path,
|
|
36
38
|
path: path,
|
|
37
|
-
render: () => (0, react_1.createElement)(WrappedComponent, {
|
|
38
|
-
|
|
39
|
+
render: (props) => (0, react_1.createElement)(WrappedComponent, {
|
|
40
|
+
...props,
|
|
41
|
+
key: props.history.location.key
|
|
39
42
|
})
|
|
40
43
|
});
|
|
41
44
|
}))))
|
|
42
|
-
}))
|
|
45
|
+
}));
|
|
46
|
+
react_dom_1.default[window.__USE_SSR__ ? 'hydrate' : 'render'](ele, container);
|
|
43
47
|
if (!window.__USE_VITE__) {
|
|
44
48
|
;
|
|
45
49
|
(_c = (_b = module === null || module === void 0 ? void 0 : module.hot) === null || _b === void 0 ? void 0 : _b.accept) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
@@ -47,4 +51,4 @@ const clientRender = async () => {
|
|
|
47
51
|
};
|
|
48
52
|
exports.clientRender = clientRender;
|
|
49
53
|
clientRender();
|
|
50
|
-
//# sourceMappingURL=client-entry.js.map
|
|
54
|
+
//# sourceMappingURL=react17-client-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react17-client-entry.js","sourceRoot":"","sources":["../../src/entry/react17-client-entry.tsx"],"names":[],"mappings":";;;AACA,yCAAgC;AAChC,iCAAqC;AACrC,uDAA+D;AAC/D,uDAAuF;AACvF,iDAA6C;AAC7C,qCAAgE;AAChE,uCAAsC;AAEtC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,eAAM,CAAA;AAE7C,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;;IAC9C,MAAM,IAAI,GACT,GAAG,aAAH,GAAG,cAAH,GAAG,GACH,UAAU,KAAkB;QAC3B,OAAO,KAAK,CAAC,QAAS,CAAA;IACvB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAA,yBAAgB,GAAS,CAAA;IACzC,IAAA,kCAAe,EAAC,OAAO,CAAC,CAAA;IACxB,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACjD,IAAA,2BAAQ,EAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAA;IACrB,MAAM,QAAQ,GAAG,IAAA,0BAAO,GAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;IAChE,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAA,MAAM,CAAC,UAAU,CAAC,MAAM,mCAAI,MAAM,CAAE,CAAA;IAC7E,MAAM,GAAG,GAAG,IAAA,qBAAa;IACxB,YAAY;IACZ,gCAAa,EACb;QACC,QAAQ,EAAE,QAAQ;KAClB,EACD,IAAA,qBAAa,EAAC,oBAAU,EAAE;QACzB,OAAO;QACP,QAAQ,EAAE,IAAA,qBAAa,EACtB,yBAAM,EACN,IAAI,EACJ,IAAA,qBAAa,EACZ,IAAW,EACX,IAAI,EACJ,IAAA,qBAAa,EACZ,yBAAM,EACN,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YACvC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YACvB,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;YACnC,MAAM,gBAAgB,GAAG,IAAA,6BAAa,EAAC,SAAS,CAAC,CAAA;YACjD,OAAO,IAAA,qBAAa,EAAC,wBAAK,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,IAAA,qBAAa,EAAC,gBAAgB,EAAE;oBAC/B,GAAG,KAAK;oBACR,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;iBAC/B,CAAC;aACH,CAAC,CAAA;QACH,CAAC,CAAC,CACF,CACD,CACD;KACD,CAAC,CACF,CAAA;IAED,mBAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAEnE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;QAAA,MAAA,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,GAAG,0CAAE,MAAM,kDAAI,CAAA;IAClC,CAAC;AACF,CAAC,CAAA;AAIQ,oCAAY;AAFrB,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react18-client-entry.d.ts","sourceRoot":"","sources":["../../src/entry/react18-client-entry.tsx"],"names":[],"mappings":"AAcA,QAAA,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CA6D1C,CAAA;AAID,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clientRender = void 0;
|
|
4
|
+
//@ts-ignore
|
|
5
|
+
const client_1 = require("react-dom/client");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const react_router_dom_1 = require("react-router-dom");
|
|
8
|
+
const ssr_common_utils_1 = require("ssr-common-utils");
|
|
9
|
+
const ssr_hoc_react_1 = require("ssr-hoc-react");
|
|
10
|
+
const create_1 = require("./create");
|
|
11
|
+
const context_1 = require("./context");
|
|
12
|
+
const { FeRoutes, layoutFetch, App } = create_1.Routes;
|
|
13
|
+
const clientRender = async () => {
|
|
14
|
+
var _a, _b, _c;
|
|
15
|
+
const IApp = App !== null && App !== void 0 ? App : function (props) {
|
|
16
|
+
return props.children;
|
|
17
|
+
};
|
|
18
|
+
const context = (0, create_1.ssrCreateContext)();
|
|
19
|
+
(0, ssr_common_utils_1.setStoreContext)(context);
|
|
20
|
+
const store = (0, create_1.createStore)(window.__VALTIO_DATA__);
|
|
21
|
+
(0, ssr_common_utils_1.setStore)(store !== null && store !== void 0 ? store : {});
|
|
22
|
+
const baseName = (0, ssr_common_utils_1.isMicro)() ? window.clientPrefix : window.prefix;
|
|
23
|
+
const routes = await (0, ssr_common_utils_1.preloadComponent)(FeRoutes, baseName);
|
|
24
|
+
const container = document.querySelector((_a = window.ssrDevInfo.rootId) !== null && _a !== void 0 ? _a : '#app');
|
|
25
|
+
const ele = (0, react_1.createElement)(
|
|
26
|
+
//@ts-ignore
|
|
27
|
+
react_router_dom_1.BrowserRouter, {
|
|
28
|
+
basename: baseName
|
|
29
|
+
}, (0, react_1.createElement)(context_1.AppContext, {
|
|
30
|
+
context,
|
|
31
|
+
children: (0, react_1.createElement)(react_router_dom_1.Switch, null, (0, react_1.createElement)(IApp, null, (0, react_1.createElement)(react_router_dom_1.Switch, null, routes.map((item) => {
|
|
32
|
+
const { fetch, component, path } = item;
|
|
33
|
+
component.fetch = fetch;
|
|
34
|
+
component.layoutFetch = layoutFetch;
|
|
35
|
+
const WrappedComponent = (0, ssr_hoc_react_1.wrapComponent)(component);
|
|
36
|
+
return (0, react_1.createElement)(react_router_dom_1.Route, {
|
|
37
|
+
exact: true,
|
|
38
|
+
key: path,
|
|
39
|
+
path: path,
|
|
40
|
+
render: (props) => (0, react_1.createElement)(WrappedComponent, {
|
|
41
|
+
...props,
|
|
42
|
+
key: props.history.location.key
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}))))
|
|
46
|
+
}));
|
|
47
|
+
if (window.__USE_SSR__) {
|
|
48
|
+
;
|
|
49
|
+
client_1.hydrateRoot(container, ele);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const root = client_1.createRoot(container);
|
|
53
|
+
root.render(ele);
|
|
54
|
+
}
|
|
55
|
+
if (!window.__USE_VITE__) {
|
|
56
|
+
;
|
|
57
|
+
(_c = (_b = module === null || module === void 0 ? void 0 : module.hot) === null || _b === void 0 ? void 0 : _b.accept) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.clientRender = clientRender;
|
|
61
|
+
clientRender();
|
|
62
|
+
//# sourceMappingURL=react18-client-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react18-client-entry.js","sourceRoot":"","sources":["../../src/entry/react18-client-entry.tsx"],"names":[],"mappings":";;;AAGA,YAAY;AACZ,6CAA0D;AAC1D,iCAAqC;AACrC,uDAA+D;AAC/D,uDAAuF;AACvF,iDAA6C;AAC7C,qCAAgE;AAChE,uCAAsC;AAEtC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,eAAM,CAAA;AAE7C,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;;IAC9C,MAAM,IAAI,GACT,GAAG,aAAH,GAAG,cAAH,GAAG,GACH,UAAU,KAAkB;QAC3B,OAAO,KAAK,CAAC,QAAS,CAAA;IACvB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAA,yBAAgB,GAAS,CAAA;IACzC,IAAA,kCAAe,EAAC,OAAO,CAAC,CAAA;IACxB,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACjD,IAAA,2BAAQ,EAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAA;IACrB,MAAM,QAAQ,GAAG,IAAA,0BAAO,GAAE,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;IAChE,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAA,MAAM,CAAC,UAAU,CAAC,MAAM,mCAAI,MAAM,CAAE,CAAA;IAC7E,MAAM,GAAG,GAAG,IAAA,qBAAa;IACxB,YAAY;IACZ,gCAAa,EACb;QACC,QAAQ,EAAE,QAAQ;KAClB,EACD,IAAA,qBAAa,EAAC,oBAAU,EAAE;QACzB,OAAO;QACP,QAAQ,EAAE,IAAA,qBAAa,EACtB,yBAAM,EACN,IAAI,EACJ,IAAA,qBAAa,EACZ,IAAW,EACX,IAAI,EACJ,IAAA,qBAAa,EACZ,yBAAM,EACN,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YACvC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YACvB,SAAS,CAAC,WAAW,GAAG,WAAW,CAAA;YACnC,MAAM,gBAAgB,GAAG,IAAA,6BAAa,EAAC,SAAS,CAAC,CAAA;YACjD,OAAO,IAAA,qBAAa,EAAC,wBAAK,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,IAAA,qBAAa,EAAC,gBAAgB,EAAE;oBAC/B,GAAG,KAAK;oBACR,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;iBAC/B,CAAC;aACH,CAAC,CAAA;QACH,CAAC,CAAC,CACF,CACD,CACD;KACD,CAAC,CACF,CAAA;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,CAAC;QAAC,oBAAkC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACrD,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,GAAI,mBAAgC,CAAC,SAAS,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC1B,CAAC;QAAA,MAAA,MAAC,MAAc,aAAd,MAAM,uBAAN,MAAM,CAAU,GAAG,0CAAE,MAAM,kDAAI,CAAA;IAClC,CAAC;AACF,CAAC,CAAA;AAIQ,oCAAY;AAFrB,YAAY,EAAE,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { ISSRContext, IConfig } from 'ssr-types';
|
|
3
2
|
import { Routes } from './create';
|
|
4
3
|
declare const serverRender: (ctx: ISSRContext, config: IConfig) => Promise<string | import("stream").Readable | NodeJS.ReadableStream | import("ssr-types").PipeableStream | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmD,MAAM,WAAW,CAAA;AAGjG,OAAO,EAAE,MAAM,EAAiC,MAAM,UAAU,CAAA;AAOhE,QAAA,MAAM,YAAY,GAAU,KAAK,WAAW,EAAE,QAAQ,OAAO;;;EAuI5D,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA"}
|