@@ -15,7 +15,10 @@ import {
1515 type RolldownOptions ,
1616 rolldown ,
1717} from 'rolldown'
18- import type { StartOptions } from '@vitejs/devtools/cli-commands'
18+ import type {
19+ DevToolsConfig ,
20+ ResolvedDevToolsConfig ,
21+ } from '@vitejs/devtools/config'
1922import type { Alias , AliasOptions } from '#dep-types/alias'
2023import type { AnymatchFn } from '../types/anymatch'
2124import { withTrailingSlash } from '../shared/utils'
@@ -620,15 +623,6 @@ export interface ResolvedWorkerOptions {
620623 rolldownOptions : RolldownOptions
621624}
622625
623- export interface DevToolsConfig extends Partial < StartOptions > {
624- enabled : boolean
625- }
626-
627- export interface ResolvedDevToolsConfig {
628- config : Omit < DevToolsConfig , 'enabled' > & { host : string }
629- enabled : boolean
630- }
631-
632626export interface InlineConfig extends UserConfig {
633627 configFile ?: string | false
634628 /** @experimental */
@@ -748,18 +742,32 @@ export interface ResolvedConfig extends Readonly<
748742export async function resolveDevToolsConfig (
749743 config : DevToolsConfig | boolean | undefined ,
750744 host : string | boolean | undefined ,
745+ logger : Logger ,
751746) : Promise < ResolvedDevToolsConfig > {
747+ const isEnabled = config === true || ! ! ( config && config . enabled )
752748 const resolvedHostname = await resolveHostname ( host )
753749 const fallbackHostname = resolvedHostname . host ?? 'localhost'
754-
755- return {
756- enabled : config === true || ! ! ( config && config . enabled ) ,
750+ const fallbackConfig = {
757751 config : {
758- ...( isObject ( config ) ? config : { } ) ,
759- host : isObject ( config )
760- ? ( config ?. host ?? fallbackHostname )
761- : fallbackHostname ,
752+ host : fallbackHostname ,
762753 } ,
754+ enabled : false ,
755+ }
756+ if ( ! isEnabled ) {
757+ return fallbackConfig
758+ }
759+
760+ try {
761+ const { normalizeDevToolsConfig } = await import ( '@vitejs/devtools/config' )
762+ return normalizeDevToolsConfig ( config , fallbackHostname )
763+ } catch ( e ) {
764+ logger . error (
765+ colors . red (
766+ `Failed to load Vite DevTools config: ${ e . message || e . stack } ` ,
767+ ) ,
768+ { error : e } ,
769+ )
770+ return fallbackConfig
763771 }
764772}
765773
@@ -1863,6 +1871,7 @@ export async function resolveConfig(
18631871 const resolvedDevToolsConfig = await resolveDevToolsConfig (
18641872 config . devtools ,
18651873 server . host ,
1874+ logger ,
18661875 )
18671876
18681877 resolved = {
0 commit comments