@@ -58,7 +58,38 @@ export function configure(api, inlineOptions) {
58
58
preOptions = await preResolveOptions ( inlineOptions , config , configEnv ) ;
59
59
// extra vite config
60
60
const extraViteConfig = await buildExtraViteConfig ( preOptions , config ) ;
61
+
62
+ if ( rolldownVersion && configEnv . command === 'build' ) {
63
+ const [ major , minor , patch , tag ] = rolldownVersion
64
+ . replace ( / [ ^ \d . ] / g, '' )
65
+ . split ( '.' )
66
+ . map ( Number ) ;
67
+ if ( major > 1 || ( major === 1 && ( minor > 0 || patch > 0 || tag > 34 ) ) ) {
68
+ extraViteConfig . build ??= { } ;
69
+ // rename rollupOptions to rolldownOptions
70
+ //@ts -ignore rolldownOptions only exists in rolldown-vite
71
+ extraViteConfig . build . rolldownOptions = extraViteConfig . build . rollupOptions || { } ;
72
+ delete extraViteConfig . build . rollupOptions ;
73
+
74
+ // set inlineConst
75
+ // TODO is `inlineConst: "safe"` safe to use with esm-env (we have to ensure it is always inlined)
76
+ if (
77
+ //@ts -ignore optimization only exists in rolldown-vite
78
+ config . build ?. rollupOptions ?. optimization ?. inlineConst == null &&
79
+ //@ts -ignore rolldownOptions only exists in rolldown-vite
80
+ config . build ?. rolldownOptions ?. optimization ?. inlineConst == null
81
+ ) {
82
+ // set inlineConst build optimization for esm-env
83
+ //@ts -ignore rolldownOptions only exists in rolldown-vite
84
+ extraViteConfig . build . rolldownOptions . optimization ??= { } ;
85
+ //@ts -ignore rolldownOptions only exists in rolldown-vite
86
+ extraViteConfig . build . rolldownOptions . optimization . inlineConst = true ;
87
+ }
88
+ }
89
+ }
90
+
61
91
log . debug ( 'additional vite config' , extraViteConfig , 'config' ) ;
92
+
62
93
return extraViteConfig ;
63
94
}
64
95
} ,
0 commit comments