ssr-plugin-react 6.1.6 → 6.1.11
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 +273 -224
- package/LICENSE +1 -1
- package/cjs/config/base.d.ts +1 -1
- package/cjs/entry/create-context.d.ts +1 -3
- package/cjs/entry/create-context.js +14 -3
- package/cjs/entry/server-entry.js +4 -2
- package/cjs/tools/vite.d.ts +6 -0
- package/cjs/tools/vite.js +68 -0
- package/cjs/tools/webpack.d.ts +2 -0
- package/cjs/tools/webpack.js +23 -0
- package/esm/config/base.d.ts +1 -1
- package/esm/entry/create-context.d.ts +1 -3
- package/esm/entry/create-context.js +14 -3
- package/esm/entry/server-entry.js +4 -2
- package/esm/tools/vite.d.ts +6 -0
- package/esm/tools/vite.js +62 -0
- package/esm/tools/webpack.d.ts +2 -0
- package/esm/tools/webpack.js +18 -0
- package/package.json +10 -10
- package/src/entry/create-context.ts +12 -3
- package/src/entry/server-entry.tsx +8 -5
- package/README.md +0 -274
package/LICENSE
CHANGED
package/cjs/config/base.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
2
3
|
// The file is provisional,don't depend on it
|
|
4
|
+
var _a;
|
|
3
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
6
|
exports.STORE_CONTEXT = void 0;
|
|
5
7
|
const react_1 = require("react");
|
|
6
|
-
|
|
7
|
-
state: {}
|
|
8
|
-
});
|
|
8
|
+
let STORE_CONTEXT;
|
|
9
9
|
exports.STORE_CONTEXT = STORE_CONTEXT;
|
|
10
|
+
if (__isBrowser__) {
|
|
11
|
+
exports.STORE_CONTEXT = STORE_CONTEXT = (_a = window.STORE_CONTEXT) !== null && _a !== void 0 ? _a : (0, react_1.createContext)({
|
|
12
|
+
state: {}
|
|
13
|
+
});
|
|
14
|
+
window.STORE_CONTEXT = STORE_CONTEXT;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
exports.STORE_CONTEXT = STORE_CONTEXT = (0, react_1.createContext)({
|
|
18
|
+
state: {}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.serverRender = void 0;
|
|
4
4
|
const React = require("react");
|
|
5
|
+
const react_router_dom_1 = require("react-router-dom");
|
|
5
6
|
const ssr_server_utils_1 = require("ssr-server-utils");
|
|
6
7
|
const serialize = require("serialize-javascript");
|
|
7
8
|
// @ts-expect-error
|
|
@@ -96,7 +97,8 @@ const serverRender = async (ctx, config) => {
|
|
|
96
97
|
const injectState = isCsr ? null : React.createElement("script", { dangerouslySetInnerHTML: {
|
|
97
98
|
__html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}`
|
|
98
99
|
} });
|
|
99
|
-
return (React.createElement(
|
|
100
|
-
React.createElement(
|
|
100
|
+
return (React.createElement(react_router_dom_1.StaticRouter, { location: ctx.request.url },
|
|
101
|
+
React.createElement(create_context_1.STORE_CONTEXT.Provider, { value: { state: combineData } },
|
|
102
|
+
React.createElement(index_tsx_1.default, { ctx: ctx, config: config, staticList: staticList, injectState: injectState }, isCsr ? React.createElement(React.Fragment, null) : React.createElement(Component, null)))));
|
|
101
103
|
};
|
|
102
104
|
exports.serverRender = serverRender;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UserConfig } from 'vite';
|
|
2
|
+
declare const serverConfig: UserConfig;
|
|
3
|
+
declare const clientConfig: UserConfig;
|
|
4
|
+
declare const viteStart: () => Promise<void>;
|
|
5
|
+
declare const viteBuild: () => Promise<void>;
|
|
6
|
+
export { viteBuild, viteStart, serverConfig, clientConfig };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clientConfig = exports.serverConfig = exports.viteStart = exports.viteBuild = void 0;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const ssr_server_utils_1 = require("ssr-server-utils");
|
|
6
|
+
const plugin_react_1 = require("@vitejs/plugin-react");
|
|
7
|
+
const build = require('vite').build;
|
|
8
|
+
const { getOutput, reactServerEntry, reactClientEntry } = (0, ssr_server_utils_1.loadConfig)();
|
|
9
|
+
const { clientOutPut, serverOutPut } = getOutput();
|
|
10
|
+
const cwd = (0, ssr_server_utils_1.getCwd)();
|
|
11
|
+
const resolveObj = {
|
|
12
|
+
alias: {
|
|
13
|
+
'@': (0, path_1.resolve)(cwd, './web'),
|
|
14
|
+
_build: (0, path_1.resolve)(cwd, './build')
|
|
15
|
+
},
|
|
16
|
+
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
|
17
|
+
};
|
|
18
|
+
const serverConfig = {
|
|
19
|
+
...ssr_server_utils_1.commonConfig,
|
|
20
|
+
resolve: resolveObj,
|
|
21
|
+
plugins: [
|
|
22
|
+
(0, plugin_react_1.default)()
|
|
23
|
+
],
|
|
24
|
+
build: {
|
|
25
|
+
ssr: reactServerEntry,
|
|
26
|
+
outDir: serverOutPut,
|
|
27
|
+
rollupOptions: {
|
|
28
|
+
output: {
|
|
29
|
+
entryFileNames: 'Page.server.js'
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
define: {
|
|
34
|
+
__isBrowser__: false
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.serverConfig = serverConfig;
|
|
38
|
+
const clientConfig = {
|
|
39
|
+
...ssr_server_utils_1.commonConfig,
|
|
40
|
+
resolve: resolveObj,
|
|
41
|
+
plugins: [
|
|
42
|
+
(0, plugin_react_1.default)()
|
|
43
|
+
],
|
|
44
|
+
build: {
|
|
45
|
+
ssrManifest: true,
|
|
46
|
+
outDir: clientOutPut,
|
|
47
|
+
rollupOptions: {
|
|
48
|
+
input: reactClientEntry,
|
|
49
|
+
//@ts-expect-error
|
|
50
|
+
output: ssr_server_utils_1.output,
|
|
51
|
+
plugins: [(0, ssr_server_utils_1.chunkNamePlugin)(), (0, ssr_server_utils_1.manifestPlugin)()]
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
define: {
|
|
55
|
+
__isBrowser__: true
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.clientConfig = clientConfig;
|
|
59
|
+
const viteStart = async () => {
|
|
60
|
+
//
|
|
61
|
+
};
|
|
62
|
+
exports.viteStart = viteStart;
|
|
63
|
+
const viteBuild = async () => {
|
|
64
|
+
await build({ ...clientConfig, mode: 'production' });
|
|
65
|
+
await build({ ...serverConfig, mode: 'production' });
|
|
66
|
+
};
|
|
67
|
+
exports.viteBuild = viteBuild;
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy92aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUE4QjtBQUU5Qix1REFBNEc7QUFDNUcsdURBQXdDO0FBQ3hDLE1BQU0sS0FBSyxHQUFxQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3JELE1BQU0sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFBLDZCQUFVLEdBQUUsQ0FBQTtBQUN0RSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFBO0FBRWxELE1BQU0sR0FBRyxHQUFHLElBQUEseUJBQU0sR0FBRSxDQUFBO0FBQ3BCLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLEtBQUssRUFBRTtRQUNMLEdBQUcsRUFBRSxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxDQUFDO0tBQ2hDO0lBQ0QsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ3BFLENBQUE7QUFDRCxNQUFNLFlBQVksR0FBZTtJQUMvQixHQUFHLCtCQUFZO0lBQ2YsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFO1FBQ1AsSUFBQSxzQkFBSyxHQUFFO0tBQ1I7SUFDRCxLQUFLLEVBQUU7UUFDTCxHQUFHLEVBQUUsZ0JBQWdCO1FBQ3JCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLGFBQWEsRUFBRTtZQUNiLE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsZ0JBQWdCO2FBQ2pDO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLGFBQWEsRUFBRSxLQUFLO0tBQ3JCO0NBQ0YsQ0FBQTtBQWlDQyxvQ0FBWTtBQS9CZCxNQUFNLFlBQVksR0FBZTtJQUMvQixHQUFHLCtCQUFZO0lBQ2YsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFO1FBQ1AsSUFBQSxzQkFBSyxHQUFFO0tBQ1I7SUFDRCxLQUFLLEVBQUU7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixNQUFNLEVBQUUsWUFBWTtRQUNwQixhQUFhLEVBQUU7WUFDYixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLGtCQUFrQjtZQUNsQixNQUFNLEVBQUUseUJBQU07WUFDZCxPQUFPLEVBQUUsQ0FBQyxJQUFBLGtDQUFlLEdBQUUsRUFBRSxJQUFBLGlDQUFjLEdBQUUsQ0FBQztTQUMvQztLQUNGO0lBQ0QsTUFBTSxFQUFFO1FBQ04sYUFBYSxFQUFFLElBQUk7S0FDcEI7Q0FDRixDQUFBO0FBYUMsb0NBQVk7QUFaZCxNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRTtJQUMzQixFQUFFO0FBQ0osQ0FBQyxDQUFBO0FBUUMsOEJBQVM7QUFQWCxNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRTtJQUMzQixNQUFNLEtBQUssQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQ3BELE1BQU0sS0FBSyxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7QUFDdEQsQ0FBQyxDQUFBO0FBR0MsOEJBQVMifQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.webpackBuild = exports.webpackStart = void 0;
|
|
4
|
+
const WebpackChain = require("webpack-chain");
|
|
5
|
+
const webpackStart = async () => {
|
|
6
|
+
const { startServerBuild } = await Promise.resolve().then(() => require('ssr-webpack/cjs/server'));
|
|
7
|
+
const { getServerWebpack } = await Promise.resolve().then(() => require('../config/server'));
|
|
8
|
+
const serverConfigChain = new WebpackChain();
|
|
9
|
+
const { startClientServer } = await Promise.resolve().then(() => require('ssr-webpack'));
|
|
10
|
+
const { getClientWebpack } = await Promise.resolve().then(() => require('../config'));
|
|
11
|
+
const clientConfigChain = new WebpackChain();
|
|
12
|
+
await Promise.all([startServerBuild(getServerWebpack(serverConfigChain)), startClientServer(getClientWebpack(clientConfigChain))]);
|
|
13
|
+
};
|
|
14
|
+
exports.webpackStart = webpackStart;
|
|
15
|
+
const webpackBuild = async () => {
|
|
16
|
+
const { startServerBuild, startClientBuild } = await Promise.resolve().then(() => require('ssr-webpack'));
|
|
17
|
+
const { getClientWebpack, getServerWebpack } = await Promise.resolve().then(() => require('../config'));
|
|
18
|
+
const serverConfigChain = new WebpackChain();
|
|
19
|
+
const clientConfigChain = new WebpackChain();
|
|
20
|
+
await Promise.all([startServerBuild(getServerWebpack(serverConfigChain)), startClientBuild(getClientWebpack(clientConfigChain))]);
|
|
21
|
+
};
|
|
22
|
+
exports.webpackBuild = webpackBuild;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy93ZWJwYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE2QztBQUV0QyxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtJQUNyQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRywyQ0FBYSx3QkFBd0IsRUFBQyxDQUFBO0lBQ25FLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLDJDQUFhLGtCQUFrQixFQUFDLENBQUE7SUFDN0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRTVDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLDJDQUFhLGFBQWEsRUFBQyxDQUFBO0lBQ3pELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLDJDQUFhLFdBQVcsRUFBQyxDQUFBO0lBQ3RELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNwSSxDQUFDLENBQUE7QUFUWSxRQUFBLFlBQVksZ0JBU3hCO0FBRU0sTUFBTSxZQUFZLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDckMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsMkNBQWEsYUFBYSxFQUFDLENBQUE7SUFDMUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsMkNBQWEsV0FBVyxFQUFDLENBQUE7SUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBQzVDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNuSSxDQUFDLENBQUE7QUFOWSxRQUFBLFlBQVksZ0JBTXhCIn0=
|
package/esm/config/base.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
// The file is provisional,don't depend on it
|
|
3
|
+
var _a;
|
|
2
4
|
import { createContext } from 'react';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
let STORE_CONTEXT;
|
|
6
|
+
if (__isBrowser__) {
|
|
7
|
+
STORE_CONTEXT = (_a = window.STORE_CONTEXT) !== null && _a !== void 0 ? _a : createContext({
|
|
8
|
+
state: {}
|
|
9
|
+
});
|
|
10
|
+
window.STORE_CONTEXT = STORE_CONTEXT;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
STORE_CONTEXT = createContext({
|
|
14
|
+
state: {}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
6
17
|
export { STORE_CONTEXT };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { StaticRouter } from 'react-router-dom';
|
|
2
3
|
import { findRoute, getManifest, logGreen, normalizePath, addAsyncChunk } from 'ssr-server-utils';
|
|
3
4
|
import * as serialize from 'serialize-javascript';
|
|
4
5
|
// @ts-expect-error
|
|
@@ -93,7 +94,8 @@ const serverRender = async (ctx, config) => {
|
|
|
93
94
|
const injectState = isCsr ? null : React.createElement("script", { dangerouslySetInnerHTML: {
|
|
94
95
|
__html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}`
|
|
95
96
|
} });
|
|
96
|
-
return (React.createElement(
|
|
97
|
-
React.createElement(
|
|
97
|
+
return (React.createElement(StaticRouter, { location: ctx.request.url },
|
|
98
|
+
React.createElement(Context.Provider, { value: { state: combineData } },
|
|
99
|
+
React.createElement(Layout, { ctx: ctx, config: config, staticList: staticList, injectState: injectState }, isCsr ? React.createElement(React.Fragment, null) : React.createElement(Component, null)))));
|
|
98
100
|
};
|
|
99
101
|
export { serverRender };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UserConfig } from 'vite';
|
|
2
|
+
declare const serverConfig: UserConfig;
|
|
3
|
+
declare const clientConfig: UserConfig;
|
|
4
|
+
declare const viteStart: () => Promise<void>;
|
|
5
|
+
declare const viteBuild: () => Promise<void>;
|
|
6
|
+
export { viteBuild, viteStart, serverConfig, clientConfig };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { loadConfig, chunkNamePlugin, output, manifestPlugin, commonConfig, getCwd } from 'ssr-server-utils';
|
|
3
|
+
import react from '@vitejs/plugin-react';
|
|
4
|
+
const build = require('vite').build;
|
|
5
|
+
const { getOutput, reactServerEntry, reactClientEntry } = loadConfig();
|
|
6
|
+
const { clientOutPut, serverOutPut } = getOutput();
|
|
7
|
+
const cwd = getCwd();
|
|
8
|
+
const resolveObj = {
|
|
9
|
+
alias: {
|
|
10
|
+
'@': resolve(cwd, './web'),
|
|
11
|
+
_build: resolve(cwd, './build')
|
|
12
|
+
},
|
|
13
|
+
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
|
14
|
+
};
|
|
15
|
+
const serverConfig = {
|
|
16
|
+
...commonConfig,
|
|
17
|
+
resolve: resolveObj,
|
|
18
|
+
plugins: [
|
|
19
|
+
react()
|
|
20
|
+
],
|
|
21
|
+
build: {
|
|
22
|
+
ssr: reactServerEntry,
|
|
23
|
+
outDir: serverOutPut,
|
|
24
|
+
rollupOptions: {
|
|
25
|
+
output: {
|
|
26
|
+
entryFileNames: 'Page.server.js'
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
define: {
|
|
31
|
+
__isBrowser__: false
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const clientConfig = {
|
|
35
|
+
...commonConfig,
|
|
36
|
+
resolve: resolveObj,
|
|
37
|
+
plugins: [
|
|
38
|
+
react()
|
|
39
|
+
],
|
|
40
|
+
build: {
|
|
41
|
+
ssrManifest: true,
|
|
42
|
+
outDir: clientOutPut,
|
|
43
|
+
rollupOptions: {
|
|
44
|
+
input: reactClientEntry,
|
|
45
|
+
//@ts-expect-error
|
|
46
|
+
output: output,
|
|
47
|
+
plugins: [chunkNamePlugin(), manifestPlugin()]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
define: {
|
|
51
|
+
__isBrowser__: true
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const viteStart = async () => {
|
|
55
|
+
//
|
|
56
|
+
};
|
|
57
|
+
const viteBuild = async () => {
|
|
58
|
+
await build({ ...clientConfig, mode: 'production' });
|
|
59
|
+
await build({ ...serverConfig, mode: 'production' });
|
|
60
|
+
};
|
|
61
|
+
export { viteBuild, viteStart, serverConfig, clientConfig };
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy92aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDNUcsT0FBTyxLQUFLLE1BQU0sc0JBQXNCLENBQUE7QUFDeEMsTUFBTSxLQUFLLEdBQXFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDckQsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0FBQ3RFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUE7QUFFbEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUE7QUFDcEIsTUFBTSxVQUFVLEdBQUc7SUFDakIsS0FBSyxFQUFFO1FBQ0wsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztLQUNoQztJQUNELFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztDQUNwRSxDQUFBO0FBQ0QsTUFBTSxZQUFZLEdBQWU7SUFDL0IsR0FBRyxZQUFZO0lBQ2YsT0FBTyxFQUFFLFVBQVU7SUFDbkIsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO0tBQ1I7SUFDRCxLQUFLLEVBQUU7UUFDTCxHQUFHLEVBQUUsZ0JBQWdCO1FBQ3JCLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLGFBQWEsRUFBRTtZQUNiLE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsZ0JBQWdCO2FBQ2pDO1NBQ0Y7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLGFBQWEsRUFBRSxLQUFLO0tBQ3JCO0NBQ0YsQ0FBQTtBQUVELE1BQU0sWUFBWSxHQUFlO0lBQy9CLEdBQUcsWUFBWTtJQUNmLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRTtLQUNSO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsV0FBVyxFQUFFLElBQUk7UUFDakIsTUFBTSxFQUFFLFlBQVk7UUFDcEIsYUFBYSxFQUFFO1lBQ2IsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixrQkFBa0I7WUFDbEIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxjQUFjLEVBQUUsQ0FBQztTQUMvQztLQUNGO0lBQ0QsTUFBTSxFQUFFO1FBQ04sYUFBYSxFQUFFLElBQUk7S0FDcEI7Q0FDRixDQUFBO0FBQ0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDM0IsRUFBRTtBQUNKLENBQUMsQ0FBQTtBQUNELE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQzNCLE1BQU0sS0FBSyxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDcEQsTUFBTSxLQUFLLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtBQUN0RCxDQUFDLENBQUE7QUFFRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNiLENBQUEifQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as WebpackChain from 'webpack-chain';
|
|
2
|
+
export const webpackStart = async () => {
|
|
3
|
+
const { startServerBuild } = await import('ssr-webpack/cjs/server');
|
|
4
|
+
const { getServerWebpack } = await import('../config/server');
|
|
5
|
+
const serverConfigChain = new WebpackChain();
|
|
6
|
+
const { startClientServer } = await import('ssr-webpack');
|
|
7
|
+
const { getClientWebpack } = await import('../config');
|
|
8
|
+
const clientConfigChain = new WebpackChain();
|
|
9
|
+
await Promise.all([startServerBuild(getServerWebpack(serverConfigChain)), startClientServer(getClientWebpack(clientConfigChain))]);
|
|
10
|
+
};
|
|
11
|
+
export const webpackBuild = async () => {
|
|
12
|
+
const { startServerBuild, startClientBuild } = await import('ssr-webpack');
|
|
13
|
+
const { getClientWebpack, getServerWebpack } = await import('../config');
|
|
14
|
+
const serverConfigChain = new WebpackChain();
|
|
15
|
+
const clientConfigChain = new WebpackChain();
|
|
16
|
+
await Promise.all([startServerBuild(getServerWebpack(serverConfigChain)), startClientBuild(getClientWebpack(clientConfigChain))]);
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy93ZWJwYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxZQUFZLE1BQU0sZUFBZSxDQUFBO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksRUFBRTtJQUNyQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0lBQ25FLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDN0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRTVDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNwSSxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDckMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDMUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBQzVDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNuSSxDQUFDLENBQUEifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ssr-plugin-react",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.11",
|
|
4
4
|
"description": "plugin-react for ssr",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "git+https://github.com/
|
|
16
|
+
"url": "git+https://github.com/zhangyuang/ssr.git"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"cli",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"author": "zhangyuang",
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"bugs": {
|
|
28
|
-
"url": "https://github.com/
|
|
28
|
+
"url": "https://github.com/zhangyuang/ssr/issues"
|
|
29
29
|
},
|
|
30
|
-
"homepage": "https://github.com/
|
|
30
|
+
"homepage": "https://github.com/zhangyuang/ssr#readme",
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@babel/core": "^7.0.0",
|
|
33
33
|
"@babel/plugin-transform-runtime": "^7.9.6",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"postcss-safe-parser": "4.0.1",
|
|
54
54
|
"react-dev-utils": "^11.0.4",
|
|
55
55
|
"serialize-javascript": "^3.0.0",
|
|
56
|
-
"ssr-client-utils": "^5.6.
|
|
57
|
-
"ssr-hoc-react": "^6.0.
|
|
58
|
-
"ssr-server-utils": "^5.7.
|
|
59
|
-
"ssr-webpack": "^5.7.
|
|
56
|
+
"ssr-client-utils": "^5.6.41",
|
|
57
|
+
"ssr-hoc-react": "^6.0.8",
|
|
58
|
+
"ssr-server-utils": "^5.7.12",
|
|
59
|
+
"ssr-webpack": "^5.7.11",
|
|
60
60
|
"terser-webpack-plugin": "^2.3.5",
|
|
61
61
|
"url-loader": "^4.1.1",
|
|
62
62
|
"webpack-bundle-analyzer": "^3.6.1",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@types/react-router-dom": "^5.1.3",
|
|
71
71
|
"@types/serialize-javascript": "^1.5.0",
|
|
72
72
|
"@types/webpack": "^4.41.10",
|
|
73
|
-
"ssr-types-react": "^6.0.
|
|
73
|
+
"ssr-types-react": "^6.0.7"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "d5ecc8aa7bc9e6f7f0c5b9752b4fe379cb0236f1"
|
|
76
76
|
}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
// The file is provisional,don't depend on it
|
|
2
3
|
|
|
3
4
|
import { createContext } from 'react'
|
|
4
5
|
import { IContext } from 'ssr-types-react'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
let STORE_CONTEXT
|
|
8
|
+
if (__isBrowser__) {
|
|
9
|
+
STORE_CONTEXT = window.STORE_CONTEXT ?? createContext<IContext>({
|
|
10
|
+
state: {}
|
|
11
|
+
})
|
|
12
|
+
window.STORE_CONTEXT = STORE_CONTEXT
|
|
13
|
+
} else {
|
|
14
|
+
STORE_CONTEXT = createContext<IContext>({
|
|
15
|
+
state: {}
|
|
16
|
+
})
|
|
17
|
+
}
|
|
9
18
|
|
|
10
19
|
export {
|
|
11
20
|
STORE_CONTEXT
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react'
|
|
2
|
+
import { StaticRouter } from 'react-router-dom'
|
|
2
3
|
import { findRoute, getManifest, logGreen, normalizePath, addAsyncChunk } from 'ssr-server-utils'
|
|
3
4
|
import { ISSRContext, IGlobal, IConfig, ReactRoutesType, ReactESMFeRouteItem } from 'ssr-types-react'
|
|
4
5
|
import * as serialize from 'serialize-javascript'
|
|
@@ -109,11 +110,13 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
|
|
|
109
110
|
}} />
|
|
110
111
|
|
|
111
112
|
return (
|
|
112
|
-
<
|
|
113
|
-
<
|
|
114
|
-
{
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
<StaticRouter location={ctx.request.url}>
|
|
114
|
+
<Context.Provider value={{ state: combineData }}>
|
|
115
|
+
<Layout ctx={ctx} config={config} staticList={staticList} injectState={injectState}>
|
|
116
|
+
{isCsr ? <></> : <Component />}
|
|
117
|
+
</Layout>
|
|
118
|
+
</Context.Provider>
|
|
119
|
+
</StaticRouter>
|
|
117
120
|
)
|
|
118
121
|
}
|
|
119
122
|
|