From b88f38bad909a62294a69533b39ad93b7db36506 Mon Sep 17 00:00:00 2001 From: Jinbao1001 Date: Wed, 22 May 2024 10:29:25 +0800 Subject: [PATCH 01/17] =?UTF-8?q?fix(docs):=20=E4=BF=AE=E5=A4=8D=20umi=20?= =?UTF-8?q?=E5=AE=98=E6=96=B9=E6=96=87=E6=A1=A3=E4=B8=AD=E3=80=8A=E6=AF=94?= =?UTF-8?q?=20Vite=20=E6=9B=B4=E5=BF=AB=E7=9A=84=20MFSU=E3=80=8B=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=9A=84=E9=97=AE=E9=A2=98=20(#12417)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contributors.json | 3 ++- docs/docs/blog/umi-4-rc.md | 2 -- .../routePreloadOnLoad/routePreloadOnLoad.ts | 15 +++++++++------ .../src/features/routePreloadOnLoad/utils.ts | 2 +- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/contributors.json b/contributors.json index b370cdaa5a7c..3aabdc71ee7e 100644 --- a/contributors.json +++ b/contributors.json @@ -46,5 +46,6 @@ "qiguoq", "AmJunh", "MaxCDon", - "mysteryven" + "mysteryven", + "Jinbao1001" ] diff --git a/docs/docs/blog/umi-4-rc.md b/docs/docs/blog/umi-4-rc.md index a7a85d7498f3..e992a34e4620 100644 --- a/docs/docs/blog/umi-4-rc.md +++ b/docs/docs/blog/umi-4-rc.md @@ -19,12 +19,10 @@ group: ![](https://img.alicdn.com/imgextra/i1/O1CN014dDq4L1Zc3guRwcse_!!6000000003214-2-tps-1600-941.png) -

MFSU V3 & 默认开启。 MFSU 更新了他的第三个大版本,如果你有用 Umi 3 内置的 MFSU 并遇到问题,建议重新尝试,这个版本有很多改进,解决基本所有之前可能会遇到的诡异问题,并且编译速度和页面打开速度都更快。昨天我还有写一篇 [《比 Vite 更快的 MFSU》](https://mp.weixin.qq.com/s?__biz=MjM5NDgyODI4MQ==&mid=2247484624&idx=1&sn=2addfa8cc2511fbea91faf831195788f)。基于此,我们自信地把这个功能在 Umi 4 中默认开启。还有值得一提的是,MFSU 可脱离 Umi 运行。 -

![](https://img.alicdn.com/imgextra/i2/O1CN01Znj8HD1mCwz72voXv_!!6000000004919-2-tps-1600-807.png) diff --git a/packages/preset-umi/src/features/routePreloadOnLoad/routePreloadOnLoad.ts b/packages/preset-umi/src/features/routePreloadOnLoad/routePreloadOnLoad.ts index ddc9ee3a055e..bddd9dd86f82 100644 --- a/packages/preset-umi/src/features/routePreloadOnLoad/routePreloadOnLoad.ts +++ b/packages/preset-umi/src/features/routePreloadOnLoad/routePreloadOnLoad.ts @@ -206,7 +206,7 @@ async function getRoutePathFilesMap( export default (api: IApi) => { let routeChunkFilesMap: IRouteChunkFilesMap; - let hashedPart = '.js'; + let preloadJSFileExt = '.js'; api.describe({ enableBy: () => // enable when package name available @@ -237,7 +237,7 @@ export default (api: IApi) => { : // script mode [ { - src: `${displayPublicPath}${PRELOAD_ROUTE_HELPER}${hashedPart}`, + src: `${displayPublicPath}${PRELOAD_ROUTE_HELPER}${preloadJSFileExt}`, }, ]; } @@ -309,17 +309,20 @@ export default (api: IApi) => { }"${api.config.publicPath}"`, ); if (api.config.hash) { - hashedPart = `.${createHash('md5') + preloadJSFileExt = `.${createHash('md5') .update(content) .digest('hex') .substring(0, 8)}.js`; } writeFileSync( - join(api.paths.absOutputPath, `${PRELOAD_ROUTE_HELPER}${hashedPart}`), + join( + api.paths.absOutputPath, + `${PRELOAD_ROUTE_HELPER}${preloadJSFileExt}`, + ), content, - ), - 'utf-8'; + 'utf-8', + ); } } }); diff --git a/packages/preset-umi/src/features/routePreloadOnLoad/utils.ts b/packages/preset-umi/src/features/routePreloadOnLoad/utils.ts index 625fef5cebb2..8dd2d06c6ff8 100644 --- a/packages/preset-umi/src/features/routePreloadOnLoad/utils.ts +++ b/packages/preset-umi/src/features/routePreloadOnLoad/utils.ts @@ -13,7 +13,7 @@ export interface IPreloadRouteFile { } export const PRELOAD_ROUTE_MAP_SCP_TYPE = 'umi-route-chunk-files-map'; -export const PRELOAD_ROUTE_HELPER = '_umi_route_preload_helper'; +export const PRELOAD_ROUTE_HELPER = 'preload_helper'; export function getPreloadRouteFiles( path: string, From 3a277ee10541520801f79ab354fdfa2941df2d53 Mon Sep 17 00:00:00 2001 From: Luffa Date: Mon, 1 Jul 2024 11:10:08 +0800 Subject: [PATCH 02/17] 1 --- packages/bundler-vite/src/config/transformer/alias.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/bundler-vite/src/config/transformer/alias.ts b/packages/bundler-vite/src/config/transformer/alias.ts index 6d6b88b21fc9..b8f54e83bfde 100644 --- a/packages/bundler-vite/src/config/transformer/alias.ts +++ b/packages/bundler-vite/src/config/transformer/alias.ts @@ -39,6 +39,7 @@ export default (function alias(userConfig) { alias: [ // to support less-loader ~ for local deps, refer: https://github.com/vitejs/vite/issues/2185 { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }; From 3435b00d594ff94c345c38e8eb40a3b9bc7799c8 Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Sun, 7 Jul 2024 05:04:27 +0800 Subject: [PATCH 03/17] fix(core): handle events on blur (close #10212) --- packages/bundler-vite/src/config/transformer/alias.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index c7f4f4c24c8c..33374e271ced 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -4,7 +4,10 @@ describe('alias config transformer', () => { test('no alias', () => { expect(alias({}, {})).toEqual({ resolve: { - alias: [{ find: /^~/, replacement: '' }], + alias: [ + { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, + ], }, }); }); From 6fda71737815fe512c7d824e2f284f6c88e2c657 Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Sun, 7 Jul 2024 05:13:43 +0800 Subject: [PATCH 04/17] fix(core): handle events on blur (close #10212) --- packages/bundler-vite/src/config/transformer/alias.test.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index 33374e271ced..c7f4f4c24c8c 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -4,10 +4,7 @@ describe('alias config transformer', () => { test('no alias', () => { expect(alias({}, {})).toEqual({ resolve: { - alias: [ - { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, - ], + alias: [{ find: /^~/, replacement: '' }], }, }); }); From 2e4ecf5c005c35be3354e25e35af79d9e253b680 Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Sun, 7 Jul 2024 05:14:07 +0800 Subject: [PATCH 05/17] fix(core): handle events on blur (close #10212) --- packages/bundler-vite/src/config/transformer/alias.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index c7f4f4c24c8c..33374e271ced 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -4,7 +4,10 @@ describe('alias config transformer', () => { test('no alias', () => { expect(alias({}, {})).toEqual({ resolve: { - alias: [{ find: /^~/, replacement: '' }], + alias: [ + { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, + ], }, }); }); From b0bdf2878e13e09e1bc53051123d42cb9936c36a Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Sun, 7 Jul 2024 05:19:50 +0800 Subject: [PATCH 06/17] fix(core): handle events on blur (close #10212) --- packages/bundler-vite/src/config/transformer/alias.test.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index 33374e271ced..fee42198a11c 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -32,6 +32,7 @@ describe('alias config transformer', () => { replacement: '/umi-next/examples/umi', }, { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }); @@ -61,6 +62,7 @@ describe('alias config transformer', () => { replacement: '/umi-next/examples/umi', }, { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }); @@ -87,6 +89,7 @@ describe('alias config transformer', () => { replacement: 'umi', }, { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }); From 06181b4a48c979c00a8c4e40abd021075036c72b Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Sun, 7 Jul 2024 05:49:17 +0800 Subject: [PATCH 07/17] fix(core): handle events on blur (close #10212) --- packages/bundler-vite/src/config/transformer/alias.test.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index fee42198a11c..b83a2c71f9ed 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -4,10 +4,7 @@ describe('alias config transformer', () => { test('no alias', () => { expect(alias({}, {})).toEqual({ resolve: { - alias: [ - { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, - ], + alias: [{ find: /^~/, replacement: '' }], }, }); }); From 9bb0976f976d78e511dbf7b5fb4ebd687d3359a4 Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Sun, 7 Jul 2024 05:49:39 +0800 Subject: [PATCH 08/17] fix(core): handle events on blur (close #10212) --- packages/bundler-vite/src/config/transformer/alias.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index b83a2c71f9ed..fee42198a11c 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -4,7 +4,10 @@ describe('alias config transformer', () => { test('no alias', () => { expect(alias({}, {})).toEqual({ resolve: { - alias: [{ find: /^~/, replacement: '' }], + alias: [ + { find: /^~/, replacement: '' }, + { find: /react-helmet-async/, replacement: 'react-helmet-async' }, + ], }, }); }); From ae1f67513b6bed6a4bd03ef15ef3afa90a5f6fe7 Mon Sep 17 00:00:00 2001 From: Luffa Date: Wed, 10 Jul 2024 16:42:40 +0800 Subject: [PATCH 09/17] fix(build): add react-helmet-async for alias resolution --- packages/preset-umi/src/features/vite/vite.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index 1a5e85c22987..2887c0e6c75f 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -1,4 +1,5 @@ import type { IApi } from '../../types'; +import { isWindows } from '../../utils/platform'; export default (api: IApi) => { api.describe({ @@ -19,6 +20,9 @@ export default (api: IApi) => { api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode + if (isWindows) { + memo.alias['react-helmet-async'] = 'react-helmet-async'; + } memo.alias['@fs'] = api.cwd; return memo; }); From ecad5f15e819135a87e3c46f7b20d6aa48f84c5a Mon Sep 17 00:00:00 2001 From: Luffa Date: Wed, 10 Jul 2024 16:46:58 +0800 Subject: [PATCH 10/17] fix(build): add react-helmet-async for alias resolution --- .../bundler-vite/src/config/transformer/alias.test.ts | 8 +------- packages/bundler-vite/src/config/transformer/alias.ts | 1 - 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/bundler-vite/src/config/transformer/alias.test.ts b/packages/bundler-vite/src/config/transformer/alias.test.ts index fee42198a11c..c7f4f4c24c8c 100644 --- a/packages/bundler-vite/src/config/transformer/alias.test.ts +++ b/packages/bundler-vite/src/config/transformer/alias.test.ts @@ -4,10 +4,7 @@ describe('alias config transformer', () => { test('no alias', () => { expect(alias({}, {})).toEqual({ resolve: { - alias: [ - { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, - ], + alias: [{ find: /^~/, replacement: '' }], }, }); }); @@ -32,7 +29,6 @@ describe('alias config transformer', () => { replacement: '/umi-next/examples/umi', }, { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }); @@ -62,7 +58,6 @@ describe('alias config transformer', () => { replacement: '/umi-next/examples/umi', }, { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }); @@ -89,7 +84,6 @@ describe('alias config transformer', () => { replacement: 'umi', }, { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }); diff --git a/packages/bundler-vite/src/config/transformer/alias.ts b/packages/bundler-vite/src/config/transformer/alias.ts index b8f54e83bfde..6d6b88b21fc9 100644 --- a/packages/bundler-vite/src/config/transformer/alias.ts +++ b/packages/bundler-vite/src/config/transformer/alias.ts @@ -39,7 +39,6 @@ export default (function alias(userConfig) { alias: [ // to support less-loader ~ for local deps, refer: https://github.com/vitejs/vite/issues/2185 { find: /^~/, replacement: '' }, - { find: /react-helmet-async/, replacement: 'react-helmet-async' }, ], }, }; From 6467991c3f87344c3525f3e168fce9a01ac8dcdb Mon Sep 17 00:00:00 2001 From: Luffa Date: Wed, 10 Jul 2024 17:08:34 +0800 Subject: [PATCH 11/17] fix(build): add react-helmet-async for alias resolution --- packages/preset-umi/src/features/vite/vite.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index 2887c0e6c75f..cc40da6e6caf 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -1,5 +1,4 @@ import type { IApi } from '../../types'; -import { isWindows } from '../../utils/platform'; export default (api: IApi) => { api.describe({ @@ -20,9 +19,7 @@ export default (api: IApi) => { api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode - if (isWindows) { - memo.alias['react-helmet-async'] = 'react-helmet-async'; - } + memo.alias['@fs'] = api.cwd; return memo; }); From 48875d9dcc5c46f14fa836131464df502040a9c0 Mon Sep 17 00:00:00 2001 From: Luffa Date: Wed, 10 Jul 2024 17:08:48 +0800 Subject: [PATCH 12/17] fix(build): add react-helmet-async for alias resolution --- packages/preset-umi/src/features/vite/vite.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index cc40da6e6caf..2887c0e6c75f 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -1,4 +1,5 @@ import type { IApi } from '../../types'; +import { isWindows } from '../../utils/platform'; export default (api: IApi) => { api.describe({ @@ -19,7 +20,9 @@ export default (api: IApi) => { api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode - + if (isWindows) { + memo.alias['react-helmet-async'] = 'react-helmet-async'; + } memo.alias['@fs'] = api.cwd; return memo; }); From 3aa7940f45eef85d5cdfcc317dde02e655e0e156 Mon Sep 17 00:00:00 2001 From: Luffa Date: Wed, 10 Jul 2024 17:43:33 +0800 Subject: [PATCH 13/17] fix(build): add react-helmet-async for alias resolution --- packages/preset-umi/src/features/vite/vite.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index 2887c0e6c75f..05b36b987535 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -21,7 +21,7 @@ export default (api: IApi) => { api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode if (isWindows) { - memo.alias['react-helmet-async'] = 'react-helmet-async'; + memo.alias['react-helmet-async'] = require.resolve('react-helmet-async'); } memo.alias['@fs'] = api.cwd; return memo; From 54a197c8a83bf7f70384217b8c7009f7d56cb818 Mon Sep 17 00:00:00 2001 From: Luffa Date: Thu, 11 Jul 2024 15:15:57 +0800 Subject: [PATCH 14/17] fix(preset-umi): resolve the path of react-helmet-async within renderer-react --- packages/preset-umi/src/features/vite/vite.ts | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index 05b36b987535..1a8a991bff0e 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -1,6 +1,49 @@ import type { IApi } from '../../types'; import { isWindows } from '../../utils/platform'; +import { winPath } from '@umijs/utils'; +import { dirname } from 'path'; +import { resolveProjectDep } from '../../utils/resolveProjectDep'; + +// 解析react-helmet-async 在renderer-react中的路径 +let corePath: string | undefined; +const REACT_HELMET_ASYNC = 'react-helmet-async'; +const RENDERER_REACT = '@umijs/renderer-react'; +let pkgPath: string; +const getReactHelmetAsyncPath = (api: IApi) => { + if (corePath) { + return corePath; + } + const defaultPkgPath = winPath( + dirname(require.resolve(`${RENDERER_REACT}/package.json`)), + ); + // 解析 renderer-react 包的路径 + try { + const rendererReactPath = resolveProjectDep({ + pkg: api.pkg, + cwd: api.cwd, + dep: RENDERER_REACT, + }); + pkgPath = rendererReactPath ? winPath(rendererReactPath) : defaultPkgPath; + } catch (e: any) { + throw new Error( + `[reactQuery] package '${RENDERER_REACT}' resolve failed, ${e.message}`, + ); + } + // 基于 renderer-react 的路径找到 react-helmet-async + try { + corePath = winPath( + dirname( + require.resolve(`${REACT_HELMET_ASYNC}/package.json`, { + paths: [pkgPath], + }), + ), + ); + console.log(corePath); + } catch {} + return corePath; +}; + export default (api: IApi) => { api.describe({ key: 'vite', @@ -14,14 +57,14 @@ export default (api: IApi) => { api.modifyAppData((memo) => { memo.bundler = 'vite'; - return memo; }); api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode if (isWindows) { - memo.alias['react-helmet-async'] = require.resolve('react-helmet-async'); + const corePath = getReactHelmetAsyncPath(api); + memo.alias[REACT_HELMET_ASYNC] = corePath; } memo.alias['@fs'] = api.cwd; return memo; From e1be908e0e76bd820410cbbabf3f6b50a564928f Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Fri, 12 Jul 2024 02:03:08 +0800 Subject: [PATCH 15/17] fix(preset-umi): resolve the path of react-helmet-async within render --- packages/preset-umi/src/features/vite/vite.ts | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index 1a8a991bff0e..2c8f849df90c 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -1,11 +1,10 @@ +import { winPath } from '@umijs/utils'; +import path from 'path'; import type { IApi } from '../../types'; import { isWindows } from '../../utils/platform'; -import { winPath } from '@umijs/utils'; -import { dirname } from 'path'; -import { resolveProjectDep } from '../../utils/resolveProjectDep'; - -// 解析react-helmet-async 在renderer-react中的路径 +// 解析 react-helmet-async 在 renderer-react 中的路径 +const { dirname } = path; let corePath: string | undefined; const REACT_HELMET_ASYNC = 'react-helmet-async'; const RENDERER_REACT = '@umijs/renderer-react'; @@ -19,11 +18,8 @@ const getReactHelmetAsyncPath = (api: IApi) => { ); // 解析 renderer-react 包的路径 try { - const rendererReactPath = resolveProjectDep({ - pkg: api.pkg, - cwd: api.cwd, - dep: RENDERER_REACT, - }); + const rendererReactPath = require.resolve(RENDERER_REACT); + pkgPath = rendererReactPath ? winPath(rendererReactPath) : defaultPkgPath; } catch (e: any) { throw new Error( From 21fcfe44aa9a4438e0d5e7fe7c775941afd44b16 Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Fri, 12 Jul 2024 02:05:45 +0800 Subject: [PATCH 16/17] fix(preset-umi): resolve the path of react-helmet-async within render --- packages/preset-umi/src/features/vite/vite.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index 2c8f849df90c..ff45c91b29bf 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -19,7 +19,6 @@ const getReactHelmetAsyncPath = (api: IApi) => { // 解析 renderer-react 包的路径 try { const rendererReactPath = require.resolve(RENDERER_REACT); - pkgPath = rendererReactPath ? winPath(rendererReactPath) : defaultPkgPath; } catch (e: any) { throw new Error( From 0cd1d0584d0d36cc5e0ff9e18870027af431f4e4 Mon Sep 17 00:00:00 2001 From: SK-Luffa Date: Fri, 12 Jul 2024 02:11:50 +0800 Subject: [PATCH 17/17] fix(preset-umi): resolve the path of react-helmet-async within render --- packages/preset-umi/src/features/vite/vite.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/preset-umi/src/features/vite/vite.ts b/packages/preset-umi/src/features/vite/vite.ts index ff45c91b29bf..ec5ac669992e 100644 --- a/packages/preset-umi/src/features/vite/vite.ts +++ b/packages/preset-umi/src/features/vite/vite.ts @@ -9,7 +9,7 @@ let corePath: string | undefined; const REACT_HELMET_ASYNC = 'react-helmet-async'; const RENDERER_REACT = '@umijs/renderer-react'; let pkgPath: string; -const getReactHelmetAsyncPath = (api: IApi) => { +const getReactHelmetAsyncPath = () => { if (corePath) { return corePath; } @@ -19,6 +19,7 @@ const getReactHelmetAsyncPath = (api: IApi) => { // 解析 renderer-react 包的路径 try { const rendererReactPath = require.resolve(RENDERER_REACT); + pkgPath = rendererReactPath ? winPath(rendererReactPath) : defaultPkgPath; } catch (e: any) { throw new Error( @@ -58,7 +59,7 @@ export default (api: IApi) => { api.modifyConfig((memo) => { // like vite, use to pre-bundling dependencies in vite mode if (isWindows) { - const corePath = getReactHelmetAsyncPath(api); + const corePath = getReactHelmetAsyncPath(); memo.alias[REACT_HELMET_ASYNC] = corePath; } memo.alias['@fs'] = api.cwd;