Skip to content

Commit 9843803

Browse files
committed
feat(rolldown-vite): enable optimization.inlineConst by default
1 parent e10850b commit 9843803

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

.changeset/all-colts-dig.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte': minor
3+
---
4+
5+
feat(rolldown-vite): enable `optimization.inlineConst` by default to ensure treeshaking works with esm-env in svelte

packages/vite-plugin-svelte/src/plugins/configure.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,38 @@ export function configure(api, inlineOptions) {
5858
preOptions = await preResolveOptions(inlineOptions, config, configEnv);
5959
// extra vite config
6060
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+
6191
log.debug('additional vite config', extraViteConfig, 'config');
92+
6293
return extraViteConfig;
6394
}
6495
},

0 commit comments

Comments
 (0)