ssr-plugin-react 6.2.84 → 7.0.1-beta.0
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 +60 -0
- package/README.md +0 -0
- 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 +6 -6
- 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} +13 -8
- 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 +44 -16
- 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 +16 -36
- 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 +4 -4
- 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} +13 -8
- 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 +45 -17
- 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 +16 -21
- package/esm/index.js.map +1 -1
- package/package.json +27 -55
- package/src/entry/context.tsx +22 -19
- package/src/entry/create.ts +19 -20
- package/src/entry/react17-client-entry.tsx +73 -0
- package/src/entry/react18-client-entry.tsx +80 -0
- package/src/entry/server-entry.tsx +132 -84
- package/src/index.ts +40 -44
- 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 -56
- 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 -57
- 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 -42
- 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 -151
- 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 -53
- 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 -54
- 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 -39
- 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 -143
- 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 -65
- package/src/config/client.ts +0 -65
- package/src/config/index.ts +0 -2
- package/src/config/server.ts +0 -48
- package/src/entry/client-entry.tsx +0 -55
- package/src/tools/vite.ts +0 -153
- package/src/tools/webpack.ts +0 -20
package/esm/entry/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/entry/create.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/entry/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE9B,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,EAAE,YAAY,CAAoB,CAAA;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACpC,MAAM,aAAa,GAAG,aAAa,CAAW;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;AAED,MAAM,UAAU,WAAW,CAAC,WAAiB;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IACxB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC5D,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACjC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,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,6 +1,5 @@
|
|
|
1
|
+
import ReactDOM from 'react-dom';
|
|
1
2
|
import { createElement } from 'react';
|
|
2
|
-
import * as ReactDOM from 'react-dom';
|
|
3
|
-
import 'react-router'; // for vite prebundle list
|
|
4
3
|
import { BrowserRouter, Route, Switch } from 'react-router-dom';
|
|
5
4
|
import { preloadComponent, isMicro, setStoreContext, setStore } from 'ssr-common-utils';
|
|
6
5
|
import { wrapComponent } from 'ssr-hoc-react';
|
|
@@ -18,11 +17,14 @@ const clientRender = async () => {
|
|
|
18
17
|
setStore(store !== null && store !== void 0 ? store : {});
|
|
19
18
|
const baseName = isMicro() ? window.clientPrefix : window.prefix;
|
|
20
19
|
const routes = await preloadComponent(FeRoutes, baseName);
|
|
21
|
-
|
|
20
|
+
const container = document.querySelector((_a = window.ssrDevInfo.rootId) !== null && _a !== void 0 ? _a : '#app');
|
|
21
|
+
const ele = createElement(
|
|
22
|
+
//@ts-ignore
|
|
23
|
+
BrowserRouter, {
|
|
22
24
|
basename: baseName
|
|
23
25
|
}, createElement(AppContext, {
|
|
24
26
|
context,
|
|
25
|
-
children: createElement(Switch, null, createElement(IApp, null, createElement(Switch, null, routes.map(item => {
|
|
27
|
+
children: createElement(Switch, null, createElement(IApp, null, createElement(Switch, null, routes.map((item) => {
|
|
26
28
|
const { fetch, component, path } = item;
|
|
27
29
|
component.fetch = fetch;
|
|
28
30
|
component.layoutFetch = layoutFetch;
|
|
@@ -31,16 +33,19 @@ const clientRender = async () => {
|
|
|
31
33
|
exact: true,
|
|
32
34
|
key: path,
|
|
33
35
|
path: path,
|
|
34
|
-
render: () => createElement(WrappedComponent, {
|
|
35
|
-
|
|
36
|
+
render: (props) => createElement(WrappedComponent, {
|
|
37
|
+
...props,
|
|
38
|
+
key: props.history.location.key
|
|
36
39
|
})
|
|
37
40
|
});
|
|
38
41
|
}))))
|
|
39
|
-
}))
|
|
42
|
+
}));
|
|
43
|
+
ReactDOM[window.__USE_SSR__ ? 'hydrate' : 'render'](ele, container);
|
|
40
44
|
if (!window.__USE_VITE__) {
|
|
45
|
+
;
|
|
41
46
|
(_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);
|
|
42
47
|
}
|
|
43
48
|
};
|
|
44
49
|
clientRender();
|
|
45
50
|
export { clientRender };
|
|
46
|
-
//# sourceMappingURL=client-entry.js.map
|
|
51
|
+
//# 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":"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"}
|
|
@@ -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,59 @@
|
|
|
1
|
+
//@ts-ignore
|
|
2
|
+
import { hydrateRoot, createRoot } from 'react-dom/client';
|
|
3
|
+
import { createElement } from 'react';
|
|
4
|
+
import { BrowserRouter, Route, Switch } from 'react-router-dom';
|
|
5
|
+
import { preloadComponent, isMicro, setStoreContext, setStore } from 'ssr-common-utils';
|
|
6
|
+
import { wrapComponent } from 'ssr-hoc-react';
|
|
7
|
+
import { ssrCreateContext, Routes, createStore } from './create';
|
|
8
|
+
import { AppContext } from './context';
|
|
9
|
+
const { FeRoutes, layoutFetch, App } = Routes;
|
|
10
|
+
const clientRender = async () => {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
const IApp = App !== null && App !== void 0 ? App : function (props) {
|
|
13
|
+
return props.children;
|
|
14
|
+
};
|
|
15
|
+
const context = ssrCreateContext();
|
|
16
|
+
setStoreContext(context);
|
|
17
|
+
const store = createStore(window.__VALTIO_DATA__);
|
|
18
|
+
setStore(store !== null && store !== void 0 ? store : {});
|
|
19
|
+
const baseName = isMicro() ? window.clientPrefix : window.prefix;
|
|
20
|
+
const routes = await preloadComponent(FeRoutes, baseName);
|
|
21
|
+
const container = document.querySelector((_a = window.ssrDevInfo.rootId) !== null && _a !== void 0 ? _a : '#app');
|
|
22
|
+
const ele = createElement(
|
|
23
|
+
//@ts-ignore
|
|
24
|
+
BrowserRouter, {
|
|
25
|
+
basename: baseName
|
|
26
|
+
}, createElement(AppContext, {
|
|
27
|
+
context,
|
|
28
|
+
children: createElement(Switch, null, createElement(IApp, null, createElement(Switch, null, routes.map((item) => {
|
|
29
|
+
const { fetch, component, path } = item;
|
|
30
|
+
component.fetch = fetch;
|
|
31
|
+
component.layoutFetch = layoutFetch;
|
|
32
|
+
const WrappedComponent = wrapComponent(component);
|
|
33
|
+
return createElement(Route, {
|
|
34
|
+
exact: true,
|
|
35
|
+
key: path,
|
|
36
|
+
path: path,
|
|
37
|
+
render: (props) => createElement(WrappedComponent, {
|
|
38
|
+
...props,
|
|
39
|
+
key: props.history.location.key
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}))))
|
|
43
|
+
}));
|
|
44
|
+
if (window.__USE_SSR__) {
|
|
45
|
+
;
|
|
46
|
+
hydrateRoot(container, ele);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const root = createRoot(container);
|
|
50
|
+
root.render(ele);
|
|
51
|
+
}
|
|
52
|
+
if (!window.__USE_VITE__) {
|
|
53
|
+
;
|
|
54
|
+
(_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);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
clientRender();
|
|
58
|
+
export { clientRender };
|
|
59
|
+
//# 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":"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"}
|
|
@@ -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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PassThrough } from 'stream';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { createElement } from 'react';
|
|
4
|
+
import * as ReactDOMServer from 'react-dom/server';
|
|
4
5
|
import { StaticRouter } from 'react-router-dom';
|
|
5
|
-
import {
|
|
6
|
-
import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, splitPageInfo, reactRefreshFragment, localStorageWrapper, checkRoute, useStore } from 'ssr-common-utils';
|
|
6
|
+
import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, splitPageInfo, reactRefreshFragment, localStorageWrapper, checkRoute, useStore, isReact18, getClientEntry } from 'ssr-common-utils';
|
|
7
7
|
import { serialize } from 'ssr-serialize-javascript';
|
|
8
8
|
import { AppContext } from './context';
|
|
9
9
|
import { Routes, ssrCreateContext, createStore } from './create';
|
|
@@ -11,7 +11,7 @@ const { FeRoutes, layoutFetch, state, Layout } = Routes;
|
|
|
11
11
|
const serverRender = async (ctx, config) => {
|
|
12
12
|
var _a;
|
|
13
13
|
const context = ssrCreateContext();
|
|
14
|
-
const { mode, parallelFetch, prefix, isVite, isDev, clientPrefix, stream, rootId, hashRouter, streamHighWaterMark } = config;
|
|
14
|
+
const { mode, parallelFetch, prefix, isVite, isDev, clientPrefix, onReady, onError, stream, rootId, hashRouter, streamHighWaterMark } = config;
|
|
15
15
|
const rawPath = (_a = ctx.request.path) !== null && _a !== void 0 ? _a : ctx.request.url;
|
|
16
16
|
const path = normalizePath(rawPath, prefix);
|
|
17
17
|
const routeItem = findRoute(FeRoutes, path);
|
|
@@ -22,26 +22,42 @@ const serverRender = async (ctx, config) => {
|
|
|
22
22
|
const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config);
|
|
23
23
|
const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config);
|
|
24
24
|
const manifest = await getManifest(config);
|
|
25
|
-
const injectCss = (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
const injectCss = (isVite && isDev
|
|
26
|
+
? [
|
|
27
|
+
React.createElement("script", { src: "/@vite/client", type: "module", key: "vite-client" }),
|
|
28
|
+
React.createElement("script", { key: "vite-react-refresh", type: "module", dangerouslySetInnerHTML: {
|
|
29
|
+
__html: reactRefreshFragment
|
|
30
|
+
} })
|
|
31
|
+
]
|
|
32
|
+
: dynamicCssOrder
|
|
33
|
+
.map((css) => manifest[css])
|
|
34
|
+
.filter(Boolean)
|
|
35
|
+
.map((css) => React.createElement("link", { rel: "stylesheet", key: css, href: css }))).concat(isVite && isDev
|
|
36
|
+
? []
|
|
37
|
+
: dynamicJsOrder
|
|
38
|
+
.map((js) => manifest[js])
|
|
39
|
+
.filter(Boolean)
|
|
40
|
+
.map((js) => React.createElement("link", { href: js, as: "script", rel: isVite ? 'modulepreload' : 'preload', key: js })));
|
|
32
41
|
const injectScript = [
|
|
33
|
-
...(isVite
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
...(isVite
|
|
43
|
+
? [
|
|
44
|
+
React.createElement("script", { key: "viteWindowInit", dangerouslySetInnerHTML: {
|
|
45
|
+
__html: 'window.__USE_VITE__=true'
|
|
46
|
+
} })
|
|
47
|
+
]
|
|
48
|
+
: []),
|
|
49
|
+
...(isVite && isDev ? [React.createElement("script", { type: "module", src: `/node_modules/ssr-plugin-react/esm/entry/${getClientEntry()}.js`, key: "vite-react-entry" })] : []),
|
|
50
|
+
...dynamicJsOrder
|
|
51
|
+
.map((js) => manifest[js])
|
|
52
|
+
.filter(Boolean)
|
|
53
|
+
.map((item) => React.createElement("script", { key: item, src: item, type: isVite ? 'module' : 'text/javascript' }))
|
|
38
54
|
];
|
|
39
55
|
const staticList = {
|
|
40
56
|
injectCss,
|
|
41
57
|
injectScript
|
|
42
58
|
};
|
|
43
59
|
const isCsr = !!(mode === 'csr' || ((_a = ctx.request.query) === null || _a === void 0 ? void 0 : _a.csr));
|
|
44
|
-
const Component = isCsr ? React.Fragment :
|
|
60
|
+
const Component = isCsr ? React.Fragment : component.name === 'dynamicComponent' ? (await component()).default : component;
|
|
45
61
|
if (isCsr) {
|
|
46
62
|
logGreen(`Current path ${path} use csr render mode`);
|
|
47
63
|
}
|
|
@@ -80,7 +96,19 @@ const serverRender = async (ctx, config) => {
|
|
|
80
96
|
}, createElement(Component, null))
|
|
81
97
|
}));
|
|
82
98
|
// for ctx.body will loose asynclocalstorage context, consume stream in advance like vue2/3
|
|
83
|
-
|
|
99
|
+
if (isReact18()) {
|
|
100
|
+
return stream
|
|
101
|
+
? ReactDOMServer
|
|
102
|
+
.renderToPipeableStream(ele, {
|
|
103
|
+
onAllReady: onReady,
|
|
104
|
+
onError: onError
|
|
105
|
+
})
|
|
106
|
+
.pipe(new PassThrough({ highWaterMark: streamHighWaterMark }))
|
|
107
|
+
: ReactDOMServer.renderToString(ele);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return stream ? ReactDOMServer.renderToNodeStream(ele).pipe(new PassThrough({ highWaterMark: streamHighWaterMark })) : ReactDOMServer.renderToString(ele);
|
|
111
|
+
}
|
|
84
112
|
};
|
|
85
113
|
return await localStorageWrapper.run({
|
|
86
114
|
context: context,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEhO,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEhE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAKvD,MAAM,YAAY,GAAG,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;;IAChE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;IAClC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAA;IAC9I,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,OAAO,CAAC,IAAI,mCAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAA;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,SAAS,CAA6B,QAAQ,EAAE,IAAI,CAAC,CAAA;IACvE,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/B,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;IAExD,MAAM,EAAE,GAAG,KAAK,IAAI,EAAE;;QACrB,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAA;QAC7E,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAA;QAC3E,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;QAE1C,MAAM,SAAS,GAAG,CACjB,MAAM,IAAI,KAAK;YACd,CAAC,CAAC;gBACA,gCAAQ,GAAG,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,aAAa,GAAG;gBAC9D,gCACC,GAAG,EAAC,oBAAoB,EACxB,IAAI,EAAC,QAAQ,EACb,uBAAuB,EAAE;wBACxB,MAAM,EAAE,oBAAoB;qBAC5B,GACA;aACF;YACF,CAAC,CAAC,eAAe;iBACd,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBAC3B,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,8BAAM,GAAG,EAAC,YAAY,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAI,CAAC,CAChE,CAAC,MAAM,CACP,MAAM,IAAI,KAAK;YACd,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,cAAc;iBACb,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACzB,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,8BAAM,IAAI,EAAE,EAAE,EAAE,EAAE,EAAC,QAAQ,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,GAAI,CAAC,CACnG,CAAA;QAED,MAAM,YAAY,GAAG;YACpB,GAAG,CAAC,MAAM;gBACT,CAAC,CAAC;oBACA,gCACC,GAAG,EAAC,gBAAgB,EACpB,uBAAuB,EAAE;4BACxB,MAAM,EAAE,0BAA0B;yBAClC,GACA;iBACF;gBACF,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAE,4CAA4C,cAAc,EAAE,KAAK,EAAE,GAAG,EAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrJ,GAAG,cAAc;iBACf,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACzB,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,GAAI,CAAC;SAC9F,CAAA;QACD,MAAM,UAAU,GAAG;YAClB,SAAS;YACT,YAAY;SACZ,CAAA;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,KAAI,MAAA,GAAG,CAAC,OAAO,CAAC,KAAK,0CAAE,GAAG,CAAA,CAAC,CAAA;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAO,SAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,SAAsB,CAAA;QAEvJ,IAAI,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,gBAAgB,IAAI,sBAAsB,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;YAC3D,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACnE,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CACpE;YAAA,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACnG,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC,CAAA;QACzG,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAA;QAC9D,MAAM,SAAS,GAAG,aAAa,CAAC;YAC/B,oBAAoB,EAAE,CAAC,KAAK;YAC5B,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;YAC9D,qBAAqB,EAAE,MAAM;YAC7B,eAAe,EAAE,IAAI,MAAM,GAAG;YAC9B,qBAAqB,EAAE,IAAI,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,GAAG;YAChD,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC/C,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC;YACxC,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5D,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,gCAAQ,uBAAuB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAI,CAAA;QAC9E,8CAA8C;QAC9C,MAAM,GAAG,GAAG,aAAa,CACxB,YAAY,EACZ;YACC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;YACzB,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;SAC7C,EACD,aAAa,CAAC,UAAU,EAAE;YACzB,OAAO,EAAE,OAAc;YACvB,YAAY,EAAE,WAAW;YACzB,QAAQ,EAAE,aAAa,CACtB,MAAM,EACN;gBACC,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,WAAW;aACxB,EACD,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAC9B;SACD,CAAC,CACF,CAAA;QACD,2FAA2F;QAC3F,IAAI,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,MAAM;gBACZ,CAAC,CAAE,cAAqC;qBACrC,sBAAsB,CAAC,GAAG,EAAE;oBAC5B,UAAU,EAAE,OAAO;oBACnB,OAAO,EAAE,OAAc;iBACvB,CAAC;qBACD,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACP,OAAO,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QAC1J,CAAC;IACF,CAAC,CAAA;IAED,OAAO,MAAM,mBAAmB,CAAC,GAAG,CACnC;QACC,OAAO,EAAE,OAAc;QACvB,GAAG;QACH,KAAK,EAAE,WAAW,EAAE;KACpB,EACD,EAAE,CACF,CAAA;AACF,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA"}
|
package/esm/index.d.ts
CHANGED
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY;;;;EAsC3B"}
|
package/esm/index.js
CHANGED
|
@@ -1,51 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { loadConfig, getCwd } from 'ssr-common-utils';
|
|
2
3
|
const { isVite, optimize } = loadConfig();
|
|
3
4
|
const spinner = require('ora')('Building');
|
|
4
5
|
export function clientPlugin() {
|
|
6
|
+
const cwd = getCwd();
|
|
7
|
+
const webpackPath = resolve(cwd, './node_modules/ssr-webpack');
|
|
8
|
+
const vitePath = resolve(cwd, './node_modules/ssr-vite');
|
|
5
9
|
return {
|
|
6
10
|
name: 'plugin-react',
|
|
7
11
|
start: async () => {
|
|
8
12
|
if (isVite) {
|
|
9
|
-
const {
|
|
10
|
-
await
|
|
13
|
+
const { start } = await import(vitePath);
|
|
14
|
+
await start();
|
|
11
15
|
}
|
|
12
16
|
else {
|
|
13
17
|
if (optimize) {
|
|
14
18
|
spinner.start();
|
|
15
|
-
const { viteBuildClient } = await import(
|
|
19
|
+
const { viteBuildClient } = await import(vitePath);
|
|
16
20
|
await viteBuildClient();
|
|
17
21
|
process.env.NODE_ENV = 'development';
|
|
18
22
|
spinner.stop();
|
|
19
|
-
const { webpackStart } = await import('./tools/webpack');
|
|
20
|
-
await webpackStart();
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
const { webpackStart } = await import('./tools/webpack');
|
|
24
|
-
await webpackStart();
|
|
25
23
|
}
|
|
24
|
+
const { start } = await import(webpackPath);
|
|
25
|
+
await start();
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
build: async () => {
|
|
29
29
|
if (isVite) {
|
|
30
|
-
const {
|
|
31
|
-
await
|
|
30
|
+
const { build } = await import(vitePath);
|
|
31
|
+
await build();
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
if (optimize) {
|
|
35
35
|
spinner.start();
|
|
36
|
-
const {
|
|
37
|
-
await
|
|
36
|
+
const { build } = await import(vitePath);
|
|
37
|
+
await build();
|
|
38
38
|
spinner.stop();
|
|
39
|
-
const { webpackBuild } = await import('./tools/webpack');
|
|
40
|
-
await webpackBuild();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const { webpackBuild } = await import('./tools/webpack');
|
|
44
|
-
await webpackBuild();
|
|
45
39
|
}
|
|
40
|
+
const { build } = await import(webpackPath);
|
|
41
|
+
await build();
|
|
46
42
|
}
|
|
47
43
|
}
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
|
-
export * from './tools/vite';
|
|
51
46
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAA;AACzC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAA;AAE1C,MAAM,UAAU,YAAY;IAC3B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAA;IACxD,OAAO;QACN,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACxC,MAAM,KAAK,EAAE,CAAA;YACd,CAAC;iBAAM,CAAC;gBACP,IAAI,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,KAAK,EAAE,CAAA;oBACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,eAAe,EAAE,CAAA;oBACvB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,aAAa,CAAA;oBACpC,OAAO,CAAC,IAAI,EAAE,CAAA;gBACf,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;gBAC3C,MAAM,KAAK,EAAE,CAAA;YACd,CAAC;QACF,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACxC,MAAM,KAAK,EAAE,CAAA;YACd,CAAC;iBAAM,CAAC;gBACP,IAAI,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,KAAK,EAAE,CAAA;oBACf,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;oBACxC,MAAM,KAAK,EAAE,CAAA;oBACb,OAAO,CAAC,IAAI,EAAE,CAAA;gBACf,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;gBAC3C,MAAM,KAAK,EAAE,CAAA;YACd,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ssr-plugin-react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.1-beta.0",
|
|
4
4
|
"description": "plugin-react for ssr",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build": "concurrently \"tsc -p ./tsconfig.cjs.json \" \" tsc -p ./tsconfig.esm.json\"",
|
|
10
|
-
"watch": "concurrently \"tsc -w -p ./tsconfig.cjs.json \" \"tsc -w -p ./tsconfig.esm.json \""
|
|
11
|
-
},
|
|
12
8
|
"repository": {
|
|
13
9
|
"type": "git",
|
|
14
10
|
"url": "git+https://github.com/zhangyuang/ssr.git"
|
|
@@ -30,64 +26,40 @@
|
|
|
30
26
|
},
|
|
31
27
|
"homepage": "https://github.com/zhangyuang/ssr#readme",
|
|
32
28
|
"dependencies": {
|
|
33
|
-
"@babel/core": "^7.0.0",
|
|
34
|
-
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.5",
|
|
35
|
-
"@babel/plugin-proposal-optional-chaining": "^7.16.5",
|
|
36
|
-
"@babel/plugin-proposal-private-methods": "^7.18.6",
|
|
37
|
-
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
38
|
-
"@babel/plugin-transform-runtime": "^7.9.6",
|
|
39
|
-
"@babel/preset-env": "^7.5.5",
|
|
40
|
-
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
|
|
41
|
-
"@types/semver": "^7.3.13",
|
|
42
29
|
"@vitejs/plugin-react": "^1.3.2",
|
|
43
|
-
"babel-loader": "^8.0.4",
|
|
44
|
-
"babel-plugin-import": "1.13.3",
|
|
45
30
|
"babel-preset-react-app": "^10.0.0",
|
|
46
|
-
"core-js": "^3.6.4",
|
|
47
|
-
"css-loader": "^5.2.7",
|
|
48
|
-
"file-loader": "^6.2.0",
|
|
49
|
-
"less": "^4.1.1",
|
|
50
|
-
"less-loader": "^7.3.0",
|
|
51
|
-
"optimize-css-assets-webpack-plugin": "^6.0.0",
|
|
52
|
-
"ora": "^4.0.4",
|
|
53
|
-
"postcss": "^8.0.0",
|
|
54
|
-
"postcss-discard-comments": "^5.0.0",
|
|
55
|
-
"postcss-flexbugs-fixes": "^5.0.0",
|
|
56
|
-
"postcss-loader": "^4.0.0",
|
|
57
|
-
"postcss-modules": "^4.0.0",
|
|
58
|
-
"postcss-preset-env": "7.6.0",
|
|
59
|
-
"postcss-safe-parser": "^6.0.0",
|
|
60
|
-
"react": "^17.0.1",
|
|
61
|
-
"react-dev-utils": "^11.0.4",
|
|
62
|
-
"react-dom": "^17.0.0",
|
|
63
31
|
"react-refresh": "^0.12.0",
|
|
64
|
-
"react-
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"ssr-webpack4": "^4.46.2",
|
|
76
|
-
"terser-webpack-plugin": "^2.3.5",
|
|
77
|
-
"url-loader": "^4.1.1",
|
|
78
|
-
"valtio": "^1.11.2",
|
|
79
|
-
"vite": "^2.9.15",
|
|
80
|
-
"webpack-bundle-analyzer": "^3.6.1",
|
|
81
|
-
"webpack-chain": "^6.4.0",
|
|
82
|
-
"webpack-manifest-plugin": "^2.2.0",
|
|
83
|
-
"webpackbar": "^5.0.0-3"
|
|
32
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
|
|
33
|
+
"valtio": "^1.13.2",
|
|
34
|
+
"ssr-common-utils": "7.0.1-beta.0",
|
|
35
|
+
"ssr-hoc-react": "7.0.1-beta.0"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"react": ">=17.0.1",
|
|
39
|
+
"react-dom": ">=17.0.0",
|
|
40
|
+
"react-router": ">=5.2.1",
|
|
41
|
+
"react-router-dom": ">=5.1.2",
|
|
42
|
+
"webpack": "^4.0.0"
|
|
84
43
|
},
|
|
85
44
|
"devDependencies": {
|
|
45
|
+
"@types/react18": "npm:@types/react@^18.0.0",
|
|
46
|
+
"@types/react-dom18": "npm:@types/react-dom@^18.0.0",
|
|
86
47
|
"@types/react": "^17.0.0",
|
|
87
48
|
"@types/react-dom": "^17.0.0",
|
|
88
49
|
"@types/react-router-dom": "^5.1.3",
|
|
89
50
|
"@types/webpack": "^4.41.10",
|
|
90
51
|
"concurrently": "^5.1.0",
|
|
91
|
-
"ssr-types": "
|
|
52
|
+
"ssr-types": "7.0.1-beta.2",
|
|
53
|
+
"ssr-webpack": "7.0.1-beta.0",
|
|
54
|
+
"ssr-vite": "7.0.1-beta.0"
|
|
55
|
+
},
|
|
56
|
+
"peerDependenciesMeta": {
|
|
57
|
+
"webpack": {
|
|
58
|
+
"optional": true
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "concurrently \"tsc -p ./tsconfig.cjs.json \" \" tsc -p ./tsconfig.esm.json\"",
|
|
63
|
+
"watch": "concurrently \"tsc -w -p ./tsconfig.cjs.json \" \"tsc -w -p ./tsconfig.esm.json \""
|
|
92
64
|
}
|
|
93
|
-
}
|
|
65
|
+
}
|
package/src/entry/context.tsx
CHANGED
|
@@ -5,35 +5,38 @@ import { Routes } from './create'
|
|
|
5
5
|
const { reducer, state } = Routes as ReactRoutesType
|
|
6
6
|
|
|
7
7
|
const userState = state ?? {}
|
|
8
|
-
const userReducer = reducer ?? function() {
|
|
8
|
+
const userReducer = reducer ?? function () {}
|
|
9
9
|
|
|
10
10
|
const isDev = process.env.NODE_ENV !== 'production'
|
|
11
11
|
|
|
12
12
|
declare const window: IWindow
|
|
13
13
|
|
|
14
14
|
function defaultReducer(state: any, action: Action) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
switch (action.type) {
|
|
16
|
+
case 'updateContext':
|
|
17
|
+
if (isDev) {
|
|
18
|
+
console.log('[SSR:updateContext]: dispatch updateContext with action')
|
|
19
|
+
console.log(action)
|
|
20
|
+
}
|
|
21
|
+
return { ...state, ...action.payload }
|
|
22
|
+
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
25
|
function combineReducer(state: any, action: any) {
|
|
27
|
-
|
|
26
|
+
return defaultReducer(state, action) || userReducer(state, action)
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
export function AppContext(props: IProps) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
const initialState = Object.assign({}, userState ?? {}, __isBrowser__ ? window?.__INITIAL_DATA__ : props.initialState)
|
|
31
|
+
const [state, dispatch] = useReducer(combineReducer, initialState)
|
|
32
|
+
return createElement(
|
|
33
|
+
props.context.Provider,
|
|
34
|
+
{
|
|
35
|
+
value: {
|
|
36
|
+
state,
|
|
37
|
+
dispatch
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
props.children as any
|
|
41
|
+
)
|
|
39
42
|
}
|
package/src/entry/create.ts
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import { createContext } from 'react'
|
|
2
|
-
import type { IContext } from 'ssr-types'
|
|
3
|
-
import { proxy } from 'valtio'
|
|
4
|
-
import { deepClone } from 'ssr-deepclone'
|
|
5
|
-
import { combineRoutes } from 'ssr-common-utils'
|
|
6
1
|
import * as declareRoutes from '_build/ssr-declare-routes'
|
|
7
2
|
import * as ManualRoutes from '_build/ssr-manual-routes'
|
|
3
|
+
import { createContext } from 'react'
|
|
4
|
+
import { combineRoutes } from 'ssr-common-utils'
|
|
5
|
+
import { deepClone } from 'ssr-deepclone'
|
|
6
|
+
import type { IContext } from 'ssr-types'
|
|
8
7
|
import { ReactRoutesType } from 'ssr-types'
|
|
8
|
+
import { proxy } from 'valtio'
|
|
9
9
|
|
|
10
10
|
export const Routes = combineRoutes(declareRoutes, ManualRoutes) as ReactRoutesType
|
|
11
|
-
|
|
12
11
|
export const ssrCreateContext = () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
const STORE_CONTEXT = createContext<IContext>({
|
|
13
|
+
state: {}
|
|
14
|
+
})
|
|
15
|
+
if (__isBrowser__) {
|
|
16
|
+
window.STORE_CONTEXT = STORE_CONTEXT
|
|
17
|
+
}
|
|
18
|
+
return STORE_CONTEXT
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
export function createStore
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
export function createStore(initialData?: any) {
|
|
22
|
+
const { store } = Routes
|
|
23
|
+
const storeInstance = initialData ? store : deepClone(store)
|
|
24
|
+
for (const key in storeInstance) {
|
|
25
|
+
storeInstance[key] = initialData ? proxy(initialData[key]) : proxy(storeInstance[key])
|
|
26
|
+
}
|
|
27
|
+
return storeInstance
|
|
29
28
|
}
|