diff --git a/src/client/app/index.ts b/src/client/app/index.ts index 850c8f6005ac..023b93ae62a4 100644 --- a/src/client/app/index.ts +++ b/src/client/app/index.ts @@ -48,7 +48,7 @@ const VitePressApp = defineComponent({ }) }) - if (import.meta.env.PROD && site.value.prefetch) { + if (import.meta.env.PROD && site.value.router.prefetchLinks) { // in prod mode, enable intersectionObserver based pre-fetch usePrefetch() } diff --git a/src/node/config.ts b/src/node/config.ts index b3695a431558..8484b76a52ce 100644 --- a/src/node/config.ts +++ b/src/node/config.ts @@ -243,7 +243,9 @@ export async function resolveSiteData( description: userConfig.description || 'A VitePress site', base: userConfig.base ? userConfig.base.replace(/([^/])$/, '$1/') : '/', head: resolveSiteDataHead(userConfig), - prefetch: userConfig.prefetch ?? true, + router: { + prefetchLinks: userConfig.router?.prefetchLinks ?? true + }, appearance: userConfig.appearance ?? true, themeConfig: userConfig.themeConfig || {}, locales: userConfig.locales || {}, diff --git a/src/node/siteConfig.ts b/src/node/siteConfig.ts index b9a2a73d18f3..56c0592c6576 100644 --- a/src/node/siteConfig.ts +++ b/src/node/siteConfig.ts @@ -69,7 +69,9 @@ export interface UserConfig locales?: LocaleConfig - prefetch?: boolean + router?: { + prefetchLinks?: boolean + } appearance?: | boolean @@ -203,7 +205,7 @@ export interface SiteConfig | 'vue' | 'vite' | 'shouldPreload' - | 'prefetch' + | 'router' | 'mpa' | 'metaChunk' | 'lastUpdated' diff --git a/types/shared.d.ts b/types/shared.d.ts index 7dff4b2c1cd4..6fdf919b0b6f 100644 --- a/types/shared.d.ts +++ b/types/shared.d.ts @@ -110,7 +110,6 @@ export interface SiteData { dir: string title: string titleTemplate?: string | boolean - prefetch: boolean description: string head: HeadConfig[] appearance: @@ -127,6 +126,9 @@ export interface SiteData { locales: LocaleConfig localeIndex?: string contentProps?: Record + router: { + prefetchLinks: boolean + } } export type HeadConfig =