ssr-plugin-react 6.1.18 → 6.1.22-alpha.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 +35 -0
- package/README.md +5 -5
- package/cjs/config/server.js +1 -1
- package/cjs/tools/vite.js +16 -3
- package/esm/config/server.js +1 -1
- package/esm/tools/vite.js +17 -4
- package/package.json +5 -4
- package/src/config/server.ts +1 -1
- package/src/tools/vite.ts +24 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,41 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.1.22-alpha.1](https://github.com/zhangyuang/ssr/compare/v6.1.22-alpha.0...v6.1.22-alpha.1) (2021-12-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* support vite-style-import ([62d936b](https://github.com/zhangyuang/ssr/commit/62d936b62dd47365be8eb27564628adc139b619d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [6.1.22-alpha.0](https://github.com/zhangyuang/ssr/compare/v6.1.21...v6.1.22-alpha.0) (2021-12-10)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package ssr-plugin-react
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [6.1.21](https://github.com/zhangyuang/ssr/compare/v6.1.20...v6.1.21) (2021-12-09)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package ssr-plugin-react
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## [6.1.19](https://github.com/zhangyuang/ssr/compare/v6.1.18...v6.1.19) (2021-12-08)
|
|
34
|
+
|
|
35
|
+
**Note:** Version bump only for package ssr-plugin-react
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
6
41
|
## [6.1.18](https://github.com/zhangyuang/ssr/compare/v6.1.17...v6.1.18) (2021-12-07)
|
|
7
42
|
|
|
8
43
|
|
package/README.md
CHANGED
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
|
|
25
25
|
`ssr` 框架是为前端框架在服务端渲染的场景下所打造的开箱即用的服务端渲染框架。了解什么是服务端渲染请查看[文档](http://doc.ssr-fc.com/docs/features$ssr)
|
|
26
26
|
|
|
27
|
-
此框架脱胎于 [egg-react-ssr](https://github.com/zhangyuang/egg-react-ssr)
|
|
27
|
+
此框架脱胎于 [egg-react-ssr](https://github.com/zhangyuang/egg-react-ssr) 项目和 `ssr` v4版本(midway-faas + react ssr),在之前的基础上做了诸多演进,通过插件化的代码组织形式,支持任意服务端框架与任意前端框架的组合使用。开发者可以选择通过 Serverless 方式部署或是以传统 Node.js 的应用形式部署,并且我们专注于提升 `Serverless` 场景下服务端渲染应用的开发体验,打造了一站式的开发,发布应用服务的功能。最大程度提升开发者的开发体验,将应用的开发,部署成本降到最低。
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
在最新的版本中,同时支持 `React` 和 `Vue2/Vue3` 作为服务端渲染框架且开发工具侧我们同样支持了最流行的 `Vite` 来提升应用的启动速度和 HMR 速度,且提供一键以 `Serverless` 的形式发布上云的功能。我们可以非常有自信说它是地球上最先进的 `ssr` 框架。如果你希望获得开箱即用的体验且能够一键部署上云,请选择 `ssr` 框架。
|
|
30
30
|
|
|
31
31
|
阅读我们的 [官方文档](http://doc.ssr-fc.com/) 获得更加详细的了解。事实上文档本身便是用 `ssr` 框架开发并通过 `Serverless` 部署到阿里云服务
|
|
32
32
|
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
- 需要一个配置简单逻辑清晰的框架, `ssr` 框架的渲染逻辑和应用构建逻辑是同类型框架中最清晰的
|
|
41
41
|
- 可能会改动技术栈,如从 `Vue2` 升级为 `Vue3`,从 `Vue3` 降级为 `Vue2` 或 `React/Vue` 互相切换
|
|
42
42
|
- 需要在服务端渲染场景下开箱即用使用 `antd` `vant` 等流行 `ui` 库
|
|
43
|
-
- 需要能够同时支持 `Webpack`, `Vite`
|
|
43
|
+
- 需要能够同时支持 `Webpack`, `Vite` 两种开发工具,以便同时得到快速的启动速度 `HMR` 速度以及稳定的生产环境代码
|
|
44
44
|
|
|
45
45
|
## 哪些应用在使用
|
|
46
46
|
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
| 里程碑 | 状态 |
|
|
137
137
|
| ---------------------------------------------------------------------- | ---- |
|
|
138
138
|
| 支持任意服务端框架与任意前端框架的组合使用。(Serverless/Midway/Nestjs) + (React/Vue2/Vue3) | 🚀 |
|
|
139
|
-
|
|
|
139
|
+
| 最丝滑的 [vite](https://vite-design.surge.sh/) [支持](http://doc.ssr-fc.com/docs/features$vite) | 🚀 |
|
|
140
140
|
| 最小而美的实现服务端渲染功能 | 🚀 |
|
|
141
141
|
| 针对Serverless 场景对代码包的大小的严格限制,将生产环境的代码包大小做到极致 | 🚀 |
|
|
142
142
|
| 同时支持约定式前端路由和声明式前端路由 | 🚀 |
|
|
@@ -273,7 +273,7 @@ $ npm run start:vite # 以 vite 模式启动,等价于 npx ssr start --vite
|
|
|
273
273
|
|
|
274
274
|
<div style="display:flex">
|
|
275
275
|
<img src="https://res.wx.qq.com/op_res/7F1t4Z8yCHWilehbcFGjAj0yVn0URMiWBGVJa-TVu_eqw5IwUXA2kPYBnfX6YRHy0FVBB-yC6l0IEL02QTJkLg" width="300">
|
|
276
|
-
<img src="https://res.wx.qq.com/op_res/
|
|
276
|
+
<img src="https://res.wx.qq.com/op_res/i1X1OIr2VfQ9MLcvsFOCyN4UWghSc85u64U8OeXxQWKrpdXvpnhe-gms1sUgtRr_QOHZPqanJ2G_lNzuN00ZvQ" width="300">
|
|
277
277
|
</div>
|
|
278
278
|
|
|
279
279
|
## 前端开发手册
|
package/cjs/config/server.js
CHANGED
|
@@ -22,7 +22,7 @@ const getServerWebpack = (chain) => {
|
|
|
22
22
|
const modulesDir = [(0, path_1.join)(cwd, './node_modules')];
|
|
23
23
|
modulesDir.push((0, ssr_server_utils_1.getLocalNodeModules)());
|
|
24
24
|
chain.externals((0, ssr_server_utils_1.nodeExternals)({
|
|
25
|
-
whitelist:
|
|
25
|
+
whitelist: whiteList,
|
|
26
26
|
// externals Dir contains example/xxx/node_modules ssr/node_modules
|
|
27
27
|
modulesDir
|
|
28
28
|
}));
|
package/cjs/tools/vite.js
CHANGED
|
@@ -4,9 +4,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.clientConfig = exports.serverConfig = exports.viteStart = exports.viteBuild = void 0;
|
|
5
5
|
const ssr_server_utils_1 = require("ssr-server-utils");
|
|
6
6
|
const plugin_react_1 = require("@vitejs/plugin-react");
|
|
7
|
+
const vite_plugin_style_import_1 = require("vite-plugin-style-import");
|
|
7
8
|
const build = require('vite').build;
|
|
8
9
|
const { getOutput, reactServerEntry, reactClientEntry, viteConfig } = (0, ssr_server_utils_1.loadConfig)();
|
|
9
10
|
const { clientOutPut, serverOutPut } = getOutput();
|
|
11
|
+
const styleImportConfig = {
|
|
12
|
+
include: ['**/*.vue', '**/*.ts', '**/*.js', '**/*.tsx', '**/*.jsx', /chunkName/],
|
|
13
|
+
resolves: [
|
|
14
|
+
(0, vite_plugin_style_import_1.AndDesignVueResolve)(),
|
|
15
|
+
(0, vite_plugin_style_import_1.VantResolve)(),
|
|
16
|
+
(0, vite_plugin_style_import_1.ElementPlusResolve)(),
|
|
17
|
+
(0, vite_plugin_style_import_1.NutuiResolve)(),
|
|
18
|
+
(0, vite_plugin_style_import_1.AntdResolve)()
|
|
19
|
+
]
|
|
20
|
+
};
|
|
10
21
|
const serverConfig = {
|
|
11
22
|
...(0, ssr_server_utils_1.commonConfig)(),
|
|
12
23
|
plugins: [
|
|
@@ -14,7 +25,8 @@ const serverConfig = {
|
|
|
14
25
|
...(_b = (_a = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _a === void 0 ? void 0 : _a.server) === null || _b === void 0 ? void 0 : _b.defaultPluginOptions,
|
|
15
26
|
jsxRuntime: 'classic'
|
|
16
27
|
}),
|
|
17
|
-
(_d = (_c = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _c === void 0 ? void 0 : _c.server) === null || _d === void 0 ? void 0 : _d.extraPlugin
|
|
28
|
+
(_d = (_c = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _c === void 0 ? void 0 : _c.server) === null || _d === void 0 ? void 0 : _d.extraPlugin,
|
|
29
|
+
(0, vite_plugin_style_import_1.default)(styleImportConfig)
|
|
18
30
|
],
|
|
19
31
|
build: {
|
|
20
32
|
ssr: reactServerEntry,
|
|
@@ -41,14 +53,15 @@ const clientConfig = {
|
|
|
41
53
|
...(_h = (_g = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _g === void 0 ? void 0 : _g.client) === null || _h === void 0 ? void 0 : _h.defaultPluginOptions,
|
|
42
54
|
jsxRuntime: 'classic'
|
|
43
55
|
}),
|
|
44
|
-
(_k = (_j = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _j === void 0 ? void 0 : _j.client) === null || _k === void 0 ? void 0 : _k.extraPlugin
|
|
56
|
+
(_k = (_j = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _j === void 0 ? void 0 : _j.client) === null || _k === void 0 ? void 0 : _k.extraPlugin,
|
|
57
|
+
(0, vite_plugin_style_import_1.default)(styleImportConfig)
|
|
45
58
|
],
|
|
46
59
|
build: {
|
|
47
60
|
ssrManifest: true,
|
|
48
61
|
outDir: clientOutPut,
|
|
49
62
|
rollupOptions: {
|
|
50
63
|
input: reactClientEntry,
|
|
51
|
-
output: ssr_server_utils_1.
|
|
64
|
+
output: ssr_server_utils_1.rollupOutputOptions,
|
|
52
65
|
plugins: [(0, ssr_server_utils_1.chunkNamePlugin)(), (0, ssr_server_utils_1.manifestPlugin)()]
|
|
53
66
|
}
|
|
54
67
|
},
|
package/esm/config/server.js
CHANGED
|
@@ -19,7 +19,7 @@ const getServerWebpack = (chain) => {
|
|
|
19
19
|
const modulesDir = [join(cwd, './node_modules')];
|
|
20
20
|
modulesDir.push(getLocalNodeModules());
|
|
21
21
|
chain.externals(nodeExternals({
|
|
22
|
-
whitelist:
|
|
22
|
+
whitelist: whiteList,
|
|
23
23
|
// externals Dir contains example/xxx/node_modules ssr/node_modules
|
|
24
24
|
modulesDir
|
|
25
25
|
}));
|
package/esm/tools/vite.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
2
|
-
import { loadConfig, chunkNamePlugin,
|
|
2
|
+
import { loadConfig, chunkNamePlugin, rollupOutputOptions, manifestPlugin, commonConfig } from 'ssr-server-utils';
|
|
3
3
|
import react from '@vitejs/plugin-react';
|
|
4
|
+
import styleImport, { AndDesignVueResolve, VantResolve, ElementPlusResolve, NutuiResolve, AntdResolve } from 'vite-plugin-style-import';
|
|
4
5
|
const build = require('vite').build;
|
|
5
6
|
const { getOutput, reactServerEntry, reactClientEntry, viteConfig } = loadConfig();
|
|
6
7
|
const { clientOutPut, serverOutPut } = getOutput();
|
|
8
|
+
const styleImportConfig = {
|
|
9
|
+
include: ['**/*.vue', '**/*.ts', '**/*.js', '**/*.tsx', '**/*.jsx', /chunkName/],
|
|
10
|
+
resolves: [
|
|
11
|
+
AndDesignVueResolve(),
|
|
12
|
+
VantResolve(),
|
|
13
|
+
ElementPlusResolve(),
|
|
14
|
+
NutuiResolve(),
|
|
15
|
+
AntdResolve()
|
|
16
|
+
]
|
|
17
|
+
};
|
|
7
18
|
const serverConfig = {
|
|
8
19
|
...commonConfig(),
|
|
9
20
|
plugins: [
|
|
@@ -11,7 +22,8 @@ const serverConfig = {
|
|
|
11
22
|
...(_b = (_a = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _a === void 0 ? void 0 : _a.server) === null || _b === void 0 ? void 0 : _b.defaultPluginOptions,
|
|
12
23
|
jsxRuntime: 'classic'
|
|
13
24
|
}),
|
|
14
|
-
(_d = (_c = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _c === void 0 ? void 0 : _c.server) === null || _d === void 0 ? void 0 : _d.extraPlugin
|
|
25
|
+
(_d = (_c = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _c === void 0 ? void 0 : _c.server) === null || _d === void 0 ? void 0 : _d.extraPlugin,
|
|
26
|
+
styleImport(styleImportConfig)
|
|
15
27
|
],
|
|
16
28
|
build: {
|
|
17
29
|
ssr: reactServerEntry,
|
|
@@ -37,14 +49,15 @@ const clientConfig = {
|
|
|
37
49
|
...(_h = (_g = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _g === void 0 ? void 0 : _g.client) === null || _h === void 0 ? void 0 : _h.defaultPluginOptions,
|
|
38
50
|
jsxRuntime: 'classic'
|
|
39
51
|
}),
|
|
40
|
-
(_k = (_j = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _j === void 0 ? void 0 : _j.client) === null || _k === void 0 ? void 0 : _k.extraPlugin
|
|
52
|
+
(_k = (_j = viteConfig === null || viteConfig === void 0 ? void 0 : viteConfig()) === null || _j === void 0 ? void 0 : _j.client) === null || _k === void 0 ? void 0 : _k.extraPlugin,
|
|
53
|
+
styleImport(styleImportConfig)
|
|
41
54
|
],
|
|
42
55
|
build: {
|
|
43
56
|
ssrManifest: true,
|
|
44
57
|
outDir: clientOutPut,
|
|
45
58
|
rollupOptions: {
|
|
46
59
|
input: reactClientEntry,
|
|
47
|
-
output:
|
|
60
|
+
output: rollupOutputOptions,
|
|
48
61
|
plugins: [chunkNamePlugin(), manifestPlugin()]
|
|
49
62
|
}
|
|
50
63
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ssr-plugin-react",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.22-alpha.1",
|
|
4
4
|
"description": "plugin-react for ssr",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -56,11 +56,12 @@
|
|
|
56
56
|
"serialize-javascript": "^6.0.0",
|
|
57
57
|
"ssr-client-utils": "^6.1.18",
|
|
58
58
|
"ssr-hoc-react": "^6.1.18",
|
|
59
|
-
"ssr-server-utils": "^6.1.
|
|
60
|
-
"ssr-webpack": "^6.1.
|
|
59
|
+
"ssr-server-utils": "^6.1.22-alpha.1",
|
|
60
|
+
"ssr-webpack": "^6.1.22-alpha.1",
|
|
61
61
|
"terser-webpack-plugin": "^2.3.5",
|
|
62
62
|
"url-loader": "^4.1.1",
|
|
63
63
|
"vite": "^2.7.0-beta.10",
|
|
64
|
+
"vite-plugin-style-import": "^1.4.0",
|
|
64
65
|
"webpack-bundle-analyzer": "^3.6.1",
|
|
65
66
|
"webpack-chain": "^6.4.0",
|
|
66
67
|
"webpack-manifest-plugin": "^2.2.0",
|
|
@@ -73,5 +74,5 @@
|
|
|
73
74
|
"@types/webpack": "^4.41.10",
|
|
74
75
|
"ssr-types-react": "^6.1.18"
|
|
75
76
|
},
|
|
76
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "0da3318b02daad97eaddde35285470768e407064"
|
|
77
78
|
}
|
package/src/config/server.ts
CHANGED
|
@@ -23,7 +23,7 @@ const getServerWebpack = (chain: WebpackChain) => {
|
|
|
23
23
|
const modulesDir = [join(cwd, './node_modules')]
|
|
24
24
|
modulesDir.push(getLocalNodeModules())
|
|
25
25
|
chain.externals(nodeExternals({
|
|
26
|
-
whitelist:
|
|
26
|
+
whitelist: whiteList,
|
|
27
27
|
// externals Dir contains example/xxx/node_modules ssr/node_modules
|
|
28
28
|
modulesDir
|
|
29
29
|
}))
|
package/src/tools/vite.ts
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import type { build as BuildType, UserConfig } from 'vite'
|
|
2
|
-
import { loadConfig, chunkNamePlugin,
|
|
2
|
+
import { loadConfig, chunkNamePlugin, rollupOutputOptions, manifestPlugin, commonConfig } from 'ssr-server-utils'
|
|
3
3
|
import react from '@vitejs/plugin-react'
|
|
4
|
+
import styleImport, {
|
|
5
|
+
AndDesignVueResolve,
|
|
6
|
+
VantResolve,
|
|
7
|
+
ElementPlusResolve,
|
|
8
|
+
NutuiResolve,
|
|
9
|
+
AntdResolve
|
|
10
|
+
} from 'vite-plugin-style-import'
|
|
11
|
+
|
|
4
12
|
const build: typeof BuildType = require('vite').build
|
|
5
13
|
const { getOutput, reactServerEntry, reactClientEntry, viteConfig } = loadConfig()
|
|
6
14
|
const { clientOutPut, serverOutPut } = getOutput()
|
|
7
|
-
|
|
15
|
+
const styleImportConfig = {
|
|
16
|
+
include: ['**/*.vue', '**/*.ts', '**/*.js', '**/*.tsx', '**/*.jsx', /chunkName/],
|
|
17
|
+
resolves: [
|
|
18
|
+
AndDesignVueResolve(),
|
|
19
|
+
VantResolve(),
|
|
20
|
+
ElementPlusResolve(),
|
|
21
|
+
NutuiResolve(),
|
|
22
|
+
AntdResolve()]
|
|
23
|
+
}
|
|
8
24
|
const serverConfig: UserConfig = {
|
|
9
25
|
...commonConfig(),
|
|
10
26
|
plugins: [
|
|
@@ -12,7 +28,9 @@ const serverConfig: UserConfig = {
|
|
|
12
28
|
...viteConfig?.()?.server?.defaultPluginOptions,
|
|
13
29
|
jsxRuntime: 'classic'
|
|
14
30
|
}),
|
|
15
|
-
viteConfig?.()?.server?.extraPlugin
|
|
31
|
+
viteConfig?.()?.server?.extraPlugin,
|
|
32
|
+
styleImport(styleImportConfig)
|
|
33
|
+
|
|
16
34
|
],
|
|
17
35
|
build: {
|
|
18
36
|
ssr: reactServerEntry,
|
|
@@ -39,14 +57,15 @@ const clientConfig: UserConfig = {
|
|
|
39
57
|
...viteConfig?.()?.client?.defaultPluginOptions,
|
|
40
58
|
jsxRuntime: 'classic'
|
|
41
59
|
}),
|
|
42
|
-
viteConfig?.()?.client?.extraPlugin
|
|
60
|
+
viteConfig?.()?.client?.extraPlugin,
|
|
61
|
+
styleImport(styleImportConfig)
|
|
43
62
|
],
|
|
44
63
|
build: {
|
|
45
64
|
ssrManifest: true,
|
|
46
65
|
outDir: clientOutPut,
|
|
47
66
|
rollupOptions: {
|
|
48
67
|
input: reactClientEntry,
|
|
49
|
-
output:
|
|
68
|
+
output: rollupOutputOptions,
|
|
50
69
|
plugins: [chunkNamePlugin(), manifestPlugin()]
|
|
51
70
|
}
|
|
52
71
|
},
|