ssr-plugin-react 6.2.12 → 6.2.13
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 +12 -0
- package/cjs/entry/server-entry.js +5 -11
- package/esm/entry/server-entry.js +6 -12
- package/package.json +1 -1
- package/src/entry/server-entry.tsx +6 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [6.2.13](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.12...plugin-react@6.2.13) (2022-04-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* update extraJsOrder extraCssOrder ([cd5ca99](https://github.com/zhangyuang/ssr/commit/cd5ca99a686ea565020500a6c4f77e310b422ce3))
|
|
7
|
+
* update midway deploy ([a473c59](https://github.com/zhangyuang/ssr/commit/a473c599657df42b4bf7a59f248b3c7c33907657))
|
|
8
|
+
* update plugin-vue3 support call pinia in fetch.ts ([958fdc7](https://github.com/zhangyuang/ssr/commit/958fdc787ab615593f3114a6bf2c6cea4823afc2))
|
|
9
|
+
* upgrade midway example to v3 ([572f7c5](https://github.com/zhangyuang/ssr/commit/572f7c5d171346cc17f5f6cdebe33aee76e0c146))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
1
13
|
## 6.2.12 (2022-04-15)
|
|
2
14
|
|
|
3
15
|
|
|
@@ -15,7 +15,7 @@ const { FeRoutes, layoutFetch, PrefixRouterBase, state } = create_router_1.Route
|
|
|
15
15
|
const serialize = serializeWrap.default || serializeWrap;
|
|
16
16
|
const serverRender = async (ctx, config) => {
|
|
17
17
|
var _a;
|
|
18
|
-
const {
|
|
18
|
+
const { mode, parallelFetch, disableClientRender, prefix, isVite, isDev, clientPrefix } = config;
|
|
19
19
|
let path = ctx.request.path; // 这里取 pathname 不能够包含 queryString
|
|
20
20
|
const base = prefix !== null && prefix !== void 0 ? prefix : PrefixRouterBase; // 以开发者实际传入的为最高优先级
|
|
21
21
|
if (base) {
|
|
@@ -28,14 +28,9 @@ const serverRender = async (ctx, config) => {
|
|
|
28
28
|
If you create new folder or component file, please restart server by npm start
|
|
29
29
|
`);
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (!isVite || (isVite && !isDev)) {
|
|
35
|
-
// call it when webpack mode or vite prod mode
|
|
36
|
-
dynamicCssOrder = await (0, ssr_server_utils_1.addAsyncChunk)(dynamicCssOrder, routeItem.webpackChunkName);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
31
|
+
const { fetch, webpackChunkName, component } = routeItem;
|
|
32
|
+
const dynamicCssOrder = await (0, ssr_server_utils_1.getAsyncCssChunk)(ctx, webpackChunkName);
|
|
33
|
+
const dynamicJsOrder = await (0, ssr_server_utils_1.getAsyncJsChunk)(ctx);
|
|
39
34
|
const manifest = await (0, ssr_server_utils_1.getManifest)(config);
|
|
40
35
|
const injectCss = [];
|
|
41
36
|
if (isVite && isDev) {
|
|
@@ -66,14 +61,13 @@ const serverRender = async (ctx, config) => {
|
|
|
66
61
|
__html: 'window.__USE_VITE__=true'
|
|
67
62
|
} }),
|
|
68
63
|
(isVite && isDev) && React.createElement("script", { type: "module", src: '/node_modules/ssr-plugin-react/esm/entry/client-entry.js', key: "vite-react-entry" }),
|
|
69
|
-
...
|
|
64
|
+
...dynamicJsOrder.map(js => manifest[js]).map(item => item && React.createElement("script", { key: item, src: item, type: isVite ? 'module' : '' }))
|
|
70
65
|
];
|
|
71
66
|
const staticList = {
|
|
72
67
|
injectCss,
|
|
73
68
|
injectScript
|
|
74
69
|
};
|
|
75
70
|
const isCsr = !!(mode === 'csr' || ((_a = ctx.request.query) === null || _a === void 0 ? void 0 : _a.csr));
|
|
76
|
-
const { component, fetch } = routeItem;
|
|
77
71
|
const Component = isCsr ? React.Fragment : (await component()).default;
|
|
78
72
|
if (isCsr) {
|
|
79
73
|
(0, ssr_server_utils_1.logGreen)(`Current path ${path} use csr render mode`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { StaticRouter } from 'react-router-dom';
|
|
3
|
-
import { findRoute, getManifest, logGreen, normalizePath,
|
|
3
|
+
import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk } from 'ssr-server-utils';
|
|
4
4
|
// @ts-expect-error
|
|
5
5
|
import * as serializeWrap from 'serialize-javascript';
|
|
6
6
|
// @ts-expect-error
|
|
@@ -12,7 +12,7 @@ const { FeRoutes, layoutFetch, PrefixRouterBase, state } = Routes;
|
|
|
12
12
|
const serialize = serializeWrap.default || serializeWrap;
|
|
13
13
|
const serverRender = async (ctx, config) => {
|
|
14
14
|
var _a;
|
|
15
|
-
const {
|
|
15
|
+
const { mode, parallelFetch, disableClientRender, prefix, isVite, isDev, clientPrefix } = config;
|
|
16
16
|
let path = ctx.request.path; // 这里取 pathname 不能够包含 queryString
|
|
17
17
|
const base = prefix !== null && prefix !== void 0 ? prefix : PrefixRouterBase; // 以开发者实际传入的为最高优先级
|
|
18
18
|
if (base) {
|
|
@@ -25,14 +25,9 @@ const serverRender = async (ctx, config) => {
|
|
|
25
25
|
If you create new folder or component file, please restart server by npm start
|
|
26
26
|
`);
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (!isVite || (isVite && !isDev)) {
|
|
32
|
-
// call it when webpack mode or vite prod mode
|
|
33
|
-
dynamicCssOrder = await addAsyncChunk(dynamicCssOrder, routeItem.webpackChunkName);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
28
|
+
const { fetch, webpackChunkName, component } = routeItem;
|
|
29
|
+
const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName);
|
|
30
|
+
const dynamicJsOrder = await getAsyncJsChunk(ctx);
|
|
36
31
|
const manifest = await getManifest(config);
|
|
37
32
|
const injectCss = [];
|
|
38
33
|
if (isVite && isDev) {
|
|
@@ -63,14 +58,13 @@ const serverRender = async (ctx, config) => {
|
|
|
63
58
|
__html: 'window.__USE_VITE__=true'
|
|
64
59
|
} }),
|
|
65
60
|
(isVite && isDev) && React.createElement("script", { type: "module", src: '/node_modules/ssr-plugin-react/esm/entry/client-entry.js', key: "vite-react-entry" }),
|
|
66
|
-
...
|
|
61
|
+
...dynamicJsOrder.map(js => manifest[js]).map(item => item && React.createElement("script", { key: item, src: item, type: isVite ? 'module' : '' }))
|
|
67
62
|
];
|
|
68
63
|
const staticList = {
|
|
69
64
|
injectCss,
|
|
70
65
|
injectScript
|
|
71
66
|
};
|
|
72
67
|
const isCsr = !!(mode === 'csr' || ((_a = ctx.request.query) === null || _a === void 0 ? void 0 : _a.csr));
|
|
73
|
-
const { component, fetch } = routeItem;
|
|
74
68
|
const Component = isCsr ? React.Fragment : (await component()).default;
|
|
75
69
|
if (isCsr) {
|
|
76
70
|
logGreen(`Current path ${path} use csr render mode`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react'
|
|
2
2
|
import { StaticRouter } from 'react-router-dom'
|
|
3
|
-
import { findRoute, getManifest, logGreen, normalizePath,
|
|
3
|
+
import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk } from 'ssr-server-utils'
|
|
4
4
|
import { ISSRContext, IConfig, ReactRoutesType, ReactESMFeRouteItem } from 'ssr-types-react'
|
|
5
5
|
// @ts-expect-error
|
|
6
6
|
import * as serializeWrap from 'serialize-javascript'
|
|
@@ -14,7 +14,7 @@ const { FeRoutes, layoutFetch, PrefixRouterBase, state } = Routes as ReactRoutes
|
|
|
14
14
|
const serialize = serializeWrap.default || serializeWrap
|
|
15
15
|
|
|
16
16
|
const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.ReactElement> => {
|
|
17
|
-
const {
|
|
17
|
+
const { mode, parallelFetch, disableClientRender, prefix, isVite, isDev, clientPrefix } = config
|
|
18
18
|
let path = ctx.request.path // 这里取 pathname 不能够包含 queryString
|
|
19
19
|
const base = prefix ?? PrefixRouterBase // 以开发者实际传入的为最高优先级
|
|
20
20
|
if (base) {
|
|
@@ -29,15 +29,9 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
|
|
|
29
29
|
`)
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
dynamicCssOrder = cssOrder.concat([`${routeItem.webpackChunkName}.css`])
|
|
36
|
-
if (!isVite || (isVite && !isDev)) {
|
|
37
|
-
// call it when webpack mode or vite prod mode
|
|
38
|
-
dynamicCssOrder = await addAsyncChunk(dynamicCssOrder, routeItem.webpackChunkName)
|
|
39
|
-
}
|
|
40
|
-
}
|
|
32
|
+
const { fetch, webpackChunkName, component } = routeItem
|
|
33
|
+
const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName)
|
|
34
|
+
const dynamicJsOrder = await getAsyncJsChunk(ctx)
|
|
41
35
|
const manifest = await getManifest(config)
|
|
42
36
|
|
|
43
37
|
const injectCss: JSX.Element[] = []
|
|
@@ -71,7 +65,7 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
|
|
|
71
65
|
__html: 'window.__USE_VITE__=true'
|
|
72
66
|
}} />,
|
|
73
67
|
(isVite && isDev) && <script type="module" src='/node_modules/ssr-plugin-react/esm/entry/client-entry.js' key="vite-react-entry" />,
|
|
74
|
-
...
|
|
68
|
+
...dynamicJsOrder.map(js => manifest[js]).map(item => item && <script key={item} src={item} type={isVite ? 'module' : ''}/>)
|
|
75
69
|
]
|
|
76
70
|
const staticList = {
|
|
77
71
|
injectCss,
|
|
@@ -79,7 +73,6 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
|
|
|
79
73
|
}
|
|
80
74
|
|
|
81
75
|
const isCsr = !!(mode === 'csr' || ctx.request.query?.csr)
|
|
82
|
-
const { component, fetch } = routeItem
|
|
83
76
|
const Component = isCsr ? React.Fragment : (await component()).default
|
|
84
77
|
|
|
85
78
|
if (isCsr) {
|