From 84d1bcb5fed2a4afbfb4dee29fe13355b09301e6 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 27 Nov 2024 13:56:53 +0000 Subject: [PATCH] perf: tree-shake spa loader handling --- packages/nuxt/src/app/entry.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/nuxt/src/app/entry.ts b/packages/nuxt/src/app/entry.ts index 1e55e2cda1..8c782f5147 100644 --- a/packages/nuxt/src/app/entry.ts +++ b/packages/nuxt/src/app/entry.ts @@ -17,7 +17,7 @@ import plugins from '#build/plugins' // @ts-expect-error virtual file import RootComponent from '#build/root-component.mjs' // @ts-expect-error virtual file -import { appId, appSpaLoaderAttrs, multiApp, vueAppRootContainer } from '#build/nuxt.config.mjs' +import { appId, appSpaLoaderAttrs, multiApp, spaPreloaderOutside, vueAppRootContainer } from '#build/nuxt.config.mjs' let entry: (ssrContext?: CreateOptions['ssrContext']) => Promise> @@ -72,10 +72,12 @@ if (import.meta.client) { if (vueApp.config.errorHandler === handleVueError) { vueApp.config.errorHandler = undefined } }) - // Remove spa loader if present - nuxt.hook('app:suspense:resolve', () => { - if (!isSSR && appSpaLoaderAttrs.id) { document.getElementById(appSpaLoaderAttrs.id)?.remove() } - }) + if (spaPreloaderOutside && !isSSR && appSpaLoaderAttrs.id) { + // Remove spa loader if present + nuxt.hook('app:suspense:resolve', () => { + document.getElementById(appSpaLoaderAttrs.id)?.remove() + }) + } try { await applyPlugins(nuxt, plugins)