From a78cf8dacdc072115bfe78c1ee61bd36eb3afe91 Mon Sep 17 00:00:00 2001 From: PeachScript Date: Thu, 12 Oct 2023 16:32:35 +0800 Subject: [PATCH] refactor(ssr): correct logic for get dist path --- packages/preset-umi/src/features/ssr/utils.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/preset-umi/src/features/ssr/utils.ts b/packages/preset-umi/src/features/ssr/utils.ts index edb4e0c12d32..3bb13e08177e 100644 --- a/packages/preset-umi/src/features/ssr/utils.ts +++ b/packages/preset-umi/src/features/ssr/utils.ts @@ -1,5 +1,5 @@ -import { join } from 'path'; import { existsSync } from 'fs'; +import { basename, join } from 'path'; import { IApi } from '../../types'; /** esbuild plugin for resolving umi imports */ @@ -29,6 +29,11 @@ export function absServerBuildPath(api: IApi) { ); } + // server output path will not be removed before compile + // so remove require cache to avoid outdated asset path when enable hash + delete require.cache[manifestPath]; const manifest = require(manifestPath); - return join(api.paths.cwd, 'server', manifest.assets['umi.js']) + // basename use to strip public path + // ex. /foo/umi.xxx.js -> umi.xxx.js + return join(api.paths.cwd, 'server', basename(manifest.assets['umi.js'])); }