@@ -18,10 +18,6 @@ import { saveSvelteMetadata } from './utils/optimizer.js';
18
18
import { VitePluginSvelteCache } from './utils/vite-plugin-svelte-cache.js' ;
19
19
import { loadRaw } from './utils/load-raw.js' ;
20
20
import * as svelteCompiler from 'svelte/compiler' ;
21
- import {
22
- VITE_CLIENT_RESOLVE_CONDITIONS ,
23
- VITE_SERVER_RESOLVE_CONDITIONS
24
- } from './utils/constants.js' ;
25
21
26
22
/**
27
23
* @param {Partial<import('./public.d.ts').Options> } [inlineOptions]
@@ -67,14 +63,31 @@ export function svelte(inlineOptions) {
67
63
log . debug ( 'additional vite config' , extraViteConfig , 'config' ) ;
68
64
return extraViteConfig ;
69
65
} ,
70
- // @ts -ignore Allow exist in vite 6
71
- configEnvironment ( name , config ) {
66
+
67
+ // @ts -ignore This hook only works in Vite 6
68
+ async configEnvironment ( name , config , opts ) {
72
69
config . resolve ??= { } ;
70
+
71
+ // Emulate Vite default fallback for `resolve.mainFields` if not set
72
+ if ( config . resolve . mainFields == null ) {
73
+ // These exports only exist in Vite 6
74
+ const { defaultClientMainFields, defaultServerMainFields } = await import ( 'vite' ) ;
75
+ if ( name === 'client' || opts . isSsrTargetWebworker ) {
76
+ config . resolve . mainFields = [ ...defaultClientMainFields ] ;
77
+ } else {
78
+ config . resolve . mainFields = [ ...defaultServerMainFields ] ;
79
+ }
80
+ }
81
+ config . resolve . mainFields . unshift ( 'svelte' ) ;
82
+
83
+ // Emulate Vite default fallback for `resolve.conditions` if not set
73
84
if ( config . resolve . conditions == null ) {
74
- if ( name === 'client' ) {
75
- config . resolve . conditions = [ ...VITE_CLIENT_RESOLVE_CONDITIONS ] ;
85
+ // These exports only exist in Vite 6
86
+ const { defaultClientConditions, defaultServerConditions } = await import ( 'vite' ) ;
87
+ if ( name === 'client' || opts . isSsrTargetWebworker ) {
88
+ config . resolve . conditions = [ ...defaultClientConditions ] ;
76
89
} else {
77
- config . resolve . conditions = [ ...VITE_SERVER_RESOLVE_CONDITIONS ] ;
90
+ config . resolve . conditions = [ ...defaultServerConditions ] ;
78
91
}
79
92
}
80
93
config . resolve . conditions . push ( 'svelte' ) ;
0 commit comments