From 62956e389416950f2f8bdd7ae6cae49c7e9544db Mon Sep 17 00:00:00 2001 From: Steve Zhu <4130171+stevezhu@users.noreply.github.com> Date: Sat, 4 Apr 2026 19:32:00 -0400 Subject: [PATCH] fix: externalize electron via ssr.external for Vite 8 In Vite 8, rollupOptions.external is not honored when rolldownOptions exists separately. Use ssr.external to ensure electron is externalized in both main and preload SSR builds, since ssr.external takes precedence over ssr.noExternal for specified packages. Co-Authored-By: Claude Opus 4.6 --- src/plugins/electron.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/electron.ts b/src/plugins/electron.ts index 2f2a340..08480df 100644 --- a/src/plugins/electron.ts +++ b/src/plugins/electron.ts @@ -122,7 +122,7 @@ export function electronMainConfigPresetPlugin(options?: ElectronPluginOptions): // enable ssr build config.build.ssr = true config.build.ssrEmitAssets = true - config.ssr = { ...config.ssr, ...{ noExternal: true } } + config.ssr = { ...config.ssr, noExternal: true, external: ['electron'] } } } } @@ -272,6 +272,7 @@ export function electronPreloadConfigPresetPlugin(options?: ElectronPluginOption config.build.ssrEmitAssets = true config.ssr = mergeConfig(defaultConfig.ssr, config.ssr || {}) config.ssr.noExternal = true + config.ssr.external = ['electron'] } } }