id: {id}
This is index.tsx
I should be pink
I should be cyan
+ /users/user @@ -43,19 +58,21 @@ export default function HomePage() {client loader data: {JSON.stringify(clientLoaderData)}
server loader data: {JSON.stringify(serverLoaderData)}
+merge loader data: {JSON.stringify(loaderData)}
); } -export async function clientLoader() { +export const clientLoader: ClientLoader = async ({}) => { await new Promise((resolve) => setTimeout(resolve, Math.random() * 1000)); - return { message: 'data from client loader of index.tsx' }; -} + return { clientMessage: 'data from client loader of index.tsx' }; +}; +clientLoader.hydrate = true; export const serverLoader: ServerLoader = async (req) => { - const url = req!.request.url; + const url = req?.request?.url; await new Promise((resolve) => setTimeout(resolve, Math.random() * 1000)); - return { message: `data from server loader of index.tsx, url: ${url}` }; + return { serverMessage: `data from server loader of index.tsx, url: ${url}` }; }; // SEO-设置页面的TDK diff --git a/index.js b/index.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/lerna.json b/lerna.json index d808c25d83ae..6474d996b789 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { - "version": "4.2.15", + "version": "4.3.0", "workspaces": ["packages/*"] } diff --git a/package.json b/package.json index 5823647d8fa1..23501db0a4e4 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,8 @@ "@types/jest": "^29.2.5", "@types/node": "^18.11.18", "@types/qs": "^6.9.7", - "@types/react": "^18.0.26", - "@types/react-dom": "^18.0.10", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", "@types/resolve": "^1.20.2", "@types/rimraf": "3.0.2", "@types/tunnel": "^0.0.3", @@ -101,8 +101,8 @@ "prettier-plugin-organize-imports": "^3.2.2", "prettier-plugin-packagejson": "^2.4.3", "qs": "^6.11.0", - "react": "18.1.0", - "react-dom": "18.1.0", + "react": "18.3.1", + "react-dom": "18.3.1", "react-text-loop-next": "0.0.3", "regenerator-runtime": "^0.13.11", "resolve": "^1.22.0", @@ -142,8 +142,8 @@ ] }, "overrides": { - "browserslist": "$browserslist", - "@parcel/watcher": "2.1.0" + "@parcel/watcher": "2.1.0", + "browserslist": "$browserslist" } }, "_local": "This flag is used to check if the development in local, Please do not delete." diff --git a/packages/ast/package.json b/packages/ast/package.json index 638846359461..f0979a119bbb 100644 --- a/packages/ast/package.json +++ b/packages/ast/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/ast", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/ast", "homepage": "https://github.com/umijs/umi/tree/master/packages/ast#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/babel-preset-umi/package.json b/packages/babel-preset-umi/package.json index 62de64913865..bb70e736df7c 100644 --- a/packages/babel-preset-umi/package.json +++ b/packages/babel-preset-umi/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/babel-preset-umi", - "version": "4.2.15", + "version": "4.3.0", "description": "Official babel preset for umi.", "homepage": "https://github.com/umijs/umi/tree/master/packages/babel-preset-umi#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/bundler-esbuild/package.json b/packages/bundler-esbuild/package.json index 68637f2096d1..a84e2b6f372f 100644 --- a/packages/bundler-esbuild/package.json +++ b/packages/bundler-esbuild/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/bundler-esbuild", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/bundler-esbuild", "homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-esbuild#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/bundler-utils/package.json b/packages/bundler-utils/package.json index d8a6430e9762..9f04bbc3d220 100644 --- a/packages/bundler-utils/package.json +++ b/packages/bundler-utils/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/bundler-utils", - "version": "4.2.15", + "version": "4.3.0", "homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-utils#readme", "bugs": "https://github.com/umijs/umi/issues", "repository": { diff --git a/packages/bundler-vite/package.json b/packages/bundler-vite/package.json index 76c302a5fdd5..91841ef25cf9 100644 --- a/packages/bundler-vite/package.json +++ b/packages/bundler-vite/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/bundler-vite", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/bundler-vite", "homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-vite#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/bundler-webpack/package.json b/packages/bundler-webpack/package.json index f3e2738b1b15..025f6dcdbac5 100644 --- a/packages/bundler-webpack/package.json +++ b/packages/bundler-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/bundler-webpack", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/bundler-webpack", "homepage": "https://github.com/umijs/umi/tree/master/packages/bundler-webpack#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/bundler-webpack/src/config/definePlugin.test.ts b/packages/bundler-webpack/src/config/definePlugin.test.ts index ad52951ce0ed..b31eb7f53a56 100644 --- a/packages/bundler-webpack/src/config/definePlugin.test.ts +++ b/packages/bundler-webpack/src/config/definePlugin.test.ts @@ -13,6 +13,7 @@ test('normal', () => { NODE_ENV: '"test"', PUBLIC_PATH: '"/"', }, + 'process.env.SSR_MANIFEST': 'process.env.SSR_MANIFEST', }); }); @@ -31,6 +32,7 @@ test('env variables', () => { UMI_APP_FOO: '"BAR"', PUBLIC_PATH: '"/"', }, + 'process.env.SSR_MANIFEST': 'process.env.SSR_MANIFEST', }); }); diff --git a/packages/bundler-webpack/src/config/definePlugin.ts b/packages/bundler-webpack/src/config/definePlugin.ts index 545a8db71aef..9e22c0b5db0e 100644 --- a/packages/bundler-webpack/src/config/definePlugin.ts +++ b/packages/bundler-webpack/src/config/definePlugin.ts @@ -66,6 +66,7 @@ export function resolveDefine(opts: IOpts) { return { 'process.env': env, + 'process.env.SSR_MANIFEST': 'process.env.SSR_MANIFEST', ...define, }; } diff --git a/packages/core/package.json b/packages/core/package.json index 5025c42d03d3..11dc1c90ee43 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/core", - "version": "4.2.15", + "version": "4.3.0", "homepage": "https://github.com/umijs/umi/tree/master/packages/core#readme", "bugs": "https://github.com/umijs/umi/issues", "repository": { diff --git a/packages/create-umi/package.json b/packages/create-umi/package.json index 954c3e1fa783..ced2ff7b7823 100644 --- a/packages/create-umi/package.json +++ b/packages/create-umi/package.json @@ -1,6 +1,6 @@ { "name": "create-umi", - "version": "4.2.15", + "version": "4.3.0", "description": "create-umi", "homepage": "https://github.com/umijs/umi/tree/master/packages/create-umi#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/lint/package.json b/packages/lint/package.json index b6152e5e6ce3..5fbaaacd880a 100644 --- a/packages/lint/package.json +++ b/packages/lint/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/lint", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/lint", "homepage": "https://github.com/umijs/umi/tree/master/packages/lint#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/max/package.json b/packages/max/package.json index 2618e35e9b5c..2029c30cc1e8 100644 --- a/packages/max/package.json +++ b/packages/max/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/max", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/max", "homepage": "https://github.com/umijs/umi/tree/master/packages/max#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/mfsu/package.json b/packages/mfsu/package.json index 20b1a77557dc..4fd49840d8da 100644 --- a/packages/mfsu/package.json +++ b/packages/mfsu/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/mfsu", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/mfsu", "homepage": "https://github.com/umijs/umi/tree/master/packages/mfsu#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/mfsu/src/mfsu/strategyStaticAnalyze.ts b/packages/mfsu/src/mfsu/strategyStaticAnalyze.ts index ac0901f8e421..a573d46c649b 100644 --- a/packages/mfsu/src/mfsu/strategyStaticAnalyze.ts +++ b/packages/mfsu/src/mfsu/strategyStaticAnalyze.ts @@ -1,11 +1,11 @@ import { logger, printHelp, winPath } from '@umijs/utils'; +import type { Configuration } from 'webpack'; import { checkMatch } from '../babelPlugins/awaitImport/checkMatch'; import mfImport from '../babelPlugins/awaitImport/MFImport'; import { StaticDepInfo } from '../staticDepInfo/staticDepInfo'; +import { extractBabelPluginImportOptions } from '../utils/webpackUtils'; import { IBuildDepPluginOpts } from '../webpackPlugins/buildDepPlugin'; import type { IMFSUStrategy, MFSU } from './mfsu'; -import type { Configuration } from 'webpack'; -import { extractBabelPluginImportOptions } from '../utils/webpackUtils'; export class StaticAnalyzeStrategy implements IMFSUStrategy { private readonly mfsu: MFSU; diff --git a/packages/plugin-docs/package.json b/packages/plugin-docs/package.json index ae918e1264eb..dcaea97f853a 100644 --- a/packages/plugin-docs/package.json +++ b/packages/plugin-docs/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/plugin-docs", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/plugin-docs", "homepage": "https://github.com/umijs/umi/tree/master/packages/plugin-docs#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/plugin-run/package.json b/packages/plugin-run/package.json index f62b1d13d6f7..9892ddb074be 100644 --- a/packages/plugin-run/package.json +++ b/packages/plugin-run/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/plugin-run", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/plugin-run", "homepage": "https://github.com/umijs/umi/tree/master/packages/plugin-run#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/plugins/libs/qiankun/master/masterRuntimePlugin.tsx b/packages/plugins/libs/qiankun/master/masterRuntimePlugin.tsx index 13520cb78342..d8a70444f40d 100644 --- a/packages/plugins/libs/qiankun/master/masterRuntimePlugin.tsx +++ b/packages/plugins/libs/qiankun/master/masterRuntimePlugin.tsx @@ -77,6 +77,10 @@ function patchMicroAppRouteComponent(routes: any[]) { } export async function render(oldRender: typeof noop) { + // 在 ssr 的场景下,直接返回旧的 render + if (typeof window === 'undefined') { + return oldRender(); + } const runtimeOptions = await getMasterRuntime(); let masterOptions: MasterOptions = { ...getMasterOptions(), @@ -138,6 +142,10 @@ export async function render(oldRender: typeof noop) { } export function patchClientRoutes({ routes }: { routes: any[] }) { + // 在 ssr 的场景下,不执行主应用的 patchClientRoutes + if (typeof window === 'undefined') { + return; + } const microAppRoutes = [].concat( deepFilterLeafRoutes(routes), deepFilterLeafRoutes(microAppRuntimeRoutes), diff --git a/packages/plugins/libs/qiankun/slave/slaveRuntimePlugin.ts b/packages/plugins/libs/qiankun/slave/slaveRuntimePlugin.ts index e16244405db5..bd81f6bfc2e1 100644 --- a/packages/plugins/libs/qiankun/slave/slaveRuntimePlugin.ts +++ b/packages/plugins/libs/qiankun/slave/slaveRuntimePlugin.ts @@ -3,6 +3,10 @@ import { createHistory } from '@@/core/history'; import qiankunRender, { contextOptsStack } from './lifecycles'; export function render(oldRender: any) { + // 在 ssr 的场景下,直接返回旧的 render + if (typeof window === 'undefined') { + return oldRender(); + } return qiankunRender().then(oldRender); } diff --git a/packages/plugins/package.json b/packages/plugins/package.json index 2c1c7572ffbe..89311f90d037 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -1,6 +1,6 @@ { "name": "@umijs/plugins", - "version": "4.2.15", + "version": "4.3.0", "description": "@umijs/plugins", "homepage": "https://github.com/umijs/umi/tree/master/packages/plugins#readme", "bugs": "https://github.com/umijs/umi/issues", diff --git a/packages/plugins/src/initial-state.ts b/packages/plugins/src/initial-state.ts index d265b7640d6f..55c49629a940 100644 --- a/packages/plugins/src/initial-state.ts +++ b/packages/plugins/src/initial-state.ts @@ -52,7 +52,7 @@ export default function InitialStateProvider(props: any) { appLoaded.current = true; } }, [loading]); - if (loading && !appLoaded.current) { + if (loading && !appLoaded.current && typeof window !== 'undefined') { return