ssr-plugin-react 6.2.42 → 6.2.45

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.
Files changed (70) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +409 -0
  3. package/README.md +3 -10
  4. package/cjs/config/base.d.ts +1 -1
  5. package/cjs/config/base.d.ts.map +1 -1
  6. package/cjs/config/base.js +9 -9
  7. package/cjs/config/client.js +6 -6
  8. package/cjs/config/server.js +4 -4
  9. package/cjs/entry/client-entry.d.ts.map +1 -1
  10. package/cjs/entry/client-entry.js +25 -17
  11. package/cjs/entry/client-entry.js.map +1 -1
  12. package/cjs/entry/context.d.ts +4 -2
  13. package/cjs/entry/context.d.ts.map +1 -1
  14. package/cjs/entry/context.js +6 -3
  15. package/cjs/entry/context.js.map +1 -1
  16. package/cjs/entry/create-context.d.ts +1 -1
  17. package/cjs/entry/create-context.d.ts.map +1 -1
  18. package/cjs/entry/create-context.js +3 -4
  19. package/cjs/entry/create-context.js.map +1 -1
  20. package/cjs/entry/create-router.d.ts +1 -1
  21. package/cjs/entry/create-router.d.ts.map +1 -1
  22. package/cjs/entry/create-router.js +2 -20
  23. package/cjs/entry/create-router.js.map +1 -1
  24. package/cjs/entry/server-entry.d.ts +3 -2
  25. package/cjs/entry/server-entry.d.ts.map +1 -1
  26. package/cjs/entry/server-entry.js +24 -13
  27. package/cjs/entry/server-entry.js.map +1 -1
  28. package/cjs/index.js +2 -2
  29. package/cjs/tools/vite.d.ts.map +1 -1
  30. package/cjs/tools/vite.js +13 -7
  31. package/cjs/tools/vite.js.map +1 -1
  32. package/esm/config/base.d.ts +1 -1
  33. package/esm/config/base.d.ts.map +1 -1
  34. package/esm/config/base.js +1 -1
  35. package/esm/config/client.js +1 -1
  36. package/esm/config/server.js +1 -1
  37. package/esm/entry/client-entry.d.ts.map +1 -1
  38. package/esm/entry/client-entry.js +23 -15
  39. package/esm/entry/client-entry.js.map +1 -1
  40. package/esm/entry/context.d.ts +4 -2
  41. package/esm/entry/context.d.ts.map +1 -1
  42. package/esm/entry/context.js +8 -5
  43. package/esm/entry/context.js.map +1 -1
  44. package/esm/entry/create-context.d.ts +1 -1
  45. package/esm/entry/create-context.d.ts.map +1 -1
  46. package/esm/entry/create-context.js +4 -5
  47. package/esm/entry/create-context.js.map +1 -1
  48. package/esm/entry/create-router.d.ts +1 -1
  49. package/esm/entry/create-router.d.ts.map +1 -1
  50. package/esm/entry/create-router.js +2 -20
  51. package/esm/entry/create-router.js.map +1 -1
  52. package/esm/entry/server-entry.d.ts +3 -2
  53. package/esm/entry/server-entry.d.ts.map +1 -1
  54. package/esm/entry/server-entry.js +17 -6
  55. package/esm/entry/server-entry.js.map +1 -1
  56. package/esm/index.js +1 -1
  57. package/esm/tools/vite.d.ts.map +1 -1
  58. package/esm/tools/vite.js +7 -1
  59. package/esm/tools/vite.js.map +1 -1
  60. package/package.json +7 -4
  61. package/src/config/base.ts +2 -2
  62. package/src/config/client.ts +1 -1
  63. package/src/config/server.ts +1 -1
  64. package/src/entry/client-entry.tsx +26 -26
  65. package/src/entry/context.tsx +9 -11
  66. package/src/entry/create-context.ts +5 -7
  67. package/src/entry/create-router.ts +3 -21
  68. package/src/entry/server-entry.tsx +21 -16
  69. package/src/index.ts +1 -1
  70. package/src/tools/vite.ts +7 -1
@@ -1,18 +1,19 @@
1
1
  import * as React from 'react'
2
+ import { createElement } from 'react'
2
3
  import { StaticRouter } from 'react-router-dom'
3
- import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment } from 'ssr-server-utils'
4
- import { ISSRContext, IConfig, ReactRoutesType, ReactESMPreloadFeRouteItem, DynamicFC, StaticFC } from 'ssr-types-react'
4
+ import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment, setStoreContext } from 'ssr-common-utils'
5
+ import { ISSRContext, IConfig, ReactESMPreloadFeRouteItem, DynamicFC, StaticFC } from 'ssr-types'
5
6
  import { serialize } from 'ssr-serialize-javascript'
6
- // @ts-expect-error
7
7
  import { STORE_CONTEXT as Context } from '_build/create-context'
8
8
  import { Routes } from './create-router'
9
9
 
10
- const { FeRoutes, layoutFetch, state, Layout } = Routes as ReactRoutesType
10
+ const { FeRoutes, layoutFetch, state, Layout } = Routes
11
11
 
12
- const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.ReactElement> => {
12
+ const serverRender = async (ctx: ISSRContext, config: IConfig) => {
13
13
  const { mode, parallelFetch, prefix, isVite, isDev, clientPrefix } = config
14
14
  const path = normalizePath(ctx.request.path, prefix)
15
15
  const routeItem = findRoute<ReactESMPreloadFeRouteItem>(FeRoutes, path)
16
+ setStoreContext(Context)
16
17
 
17
18
  if (!routeItem) {
18
19
  throw new Error(`
@@ -23,7 +24,7 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
23
24
 
24
25
  const { fetch, webpackChunkName, component } = routeItem
25
26
  const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config)
26
- const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config)
27
+ const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config)
27
28
  const manifest = await getManifest(config)
28
29
 
29
30
  const injectCss = ((isVite && isDev) ? [
@@ -58,7 +59,6 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
58
59
  let fetchData = {}
59
60
  if (!isCsr) {
60
61
  const currentFetch = fetch ? (await fetch()).default : null
61
-
62
62
  // csr 下不需要服务端获取数据
63
63
  if (parallelFetch) {
64
64
  [layoutFetchData, fetchData] = await Promise.all([
@@ -74,15 +74,20 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
74
74
  const injectState = isCsr ? <script dangerouslySetInnerHTML={{ __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` }} /> : <script dangerouslySetInnerHTML={{
75
75
  __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
76
76
  }} />
77
- return (
78
- <StaticRouter location={ctx.request.url} basename={prefix === '/' ? undefined : prefix}>
79
- <Context.Provider value={{ state: combineData }}>
80
- <Layout ctx={ctx} config={config} staticList={staticList} injectState={injectState}>
81
- <Component />
82
- </Layout>
83
- </Context.Provider>
84
- </StaticRouter>
85
- )
77
+ // with jsx type error, use createElement here
78
+ return createElement(StaticRouter, {
79
+ location: ctx.request.url,
80
+ basename: prefix === '/' ? undefined : prefix
81
+ }, createElement(Context.Provider, {
82
+ value: {
83
+ state: combineData
84
+ }
85
+ }, createElement(Layout, {
86
+ ctx: ctx,
87
+ config: config,
88
+ staticList: staticList,
89
+ injectState: injectState
90
+ }, createElement(Component, null))))
86
91
  }
87
92
 
88
93
  export {
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { loadConfig } from 'ssr-server-utils'
1
+ import { loadConfig } from 'ssr-common-utils'
2
2
 
3
3
  const { isVite, optimize } = loadConfig()
4
4
  const spinner = require('ora')('Building')
package/src/tools/vite.ts CHANGED
@@ -2,7 +2,7 @@ import { build, UserConfig } from 'vite'
2
2
  import {
3
3
  loadConfig, chunkNamePlugin, rollupOutputOptions, manifestPlugin, commonConfig,
4
4
  asyncOptimizeChunkPlugin, getOutputPublicPath
5
- } from 'ssr-server-utils'
5
+ } from 'ssr-common-utils'
6
6
  import react from '@vitejs/plugin-react'
7
7
  import { createStyleImportPlugin, AndDesignVueResolve, VantResolve, ElementPlusResolve, NutuiResolve, AntdResolve } from 'ssr-vite-plugin-style-import'
8
8
  const { getOutput, reactServerEntry, reactClientEntry, viteConfig, supportOptinalChaining, isDev, define, babelOptions, optimize } = loadConfig()
@@ -44,6 +44,12 @@ const serverConfig: UserConfig = {
44
44
  keepNames: true,
45
45
  logOverride: { 'this-is-undefined-in-esm': 'silent' }
46
46
  },
47
+ optimizeDeps: {
48
+ esbuildOptions: {
49
+ // @ts-expect-error
50
+ bundle: isDev
51
+ }
52
+ },
47
53
  build: {
48
54
  ...viteConfig?.().server?.otherConfig?.build,
49
55
  ssr: reactServerEntry,