11import { dirname , join , resolve } from 'node:path' ;
22import { fileURLToPath } from 'node:url' ;
33
4- import { UserConfig } from 'vite' ;
54import { defineConfig , defineViteConfig } from 'electron-vite' ;
65import builtinModules from 'builtin-modules' ;
7- import viteResolve from 'vite-plugin-resolve' ;
6+
87import Inspect from 'vite-plugin-inspect' ;
98import solidPlugin from 'vite-plugin-solid' ;
9+ import viteResolve from 'vite-plugin-resolve' ;
10+
11+ import { withFilter , type UserConfig } from 'vite' ;
1012
1113import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs' ;
1214import pluginLoader from './vite-plugins/plugin-loader.mjs' ;
13-
1415import { i18nImporter } from './vite-plugins/i18n-importer.mjs' ;
1516
1617const __dirname = dirname ( fileURLToPath ( import . meta. url ) ) ;
@@ -23,6 +24,9 @@ const resolveAlias = {
2324export default defineConfig ( {
2425 main : defineViteConfig ( ( { mode } ) => {
2526 const commonConfig : UserConfig = {
27+ experimental : {
28+ enableNativePlugin : true ,
29+ } ,
2630 plugins : [
2731 pluginLoader ( 'backend' ) ,
2832 viteResolve ( {
@@ -31,15 +35,16 @@ export default defineConfig({
3135 } ) ,
3236 ] ,
3337 publicDir : 'assets' ,
38+ define : {
39+ '__dirname' : 'import.meta.dirname' ,
40+ '__filename' : 'import.meta.filename' ,
41+ } ,
3442 build : {
3543 lib : {
3644 entry : 'src/index.ts' ,
37- formats : [ 'cjs ' ] ,
45+ formats : [ 'es ' ] ,
3846 } ,
3947 outDir : 'dist/main' ,
40- commonjsOptions : {
41- ignoreDynamicRequires : true ,
42- } ,
4348 rollupOptions : {
4449 external : [ 'electron' , 'custom-electron-prompt' , ...builtinModules ] ,
4550 input : './src/index.ts' ,
@@ -72,6 +77,9 @@ export default defineConfig({
7277 } ) ,
7378 preload : defineViteConfig ( ( { mode } ) => {
7479 const commonConfig : UserConfig = {
80+ experimental : {
81+ enableNativePlugin : true ,
82+ } ,
7583 plugins : [
7684 pluginLoader ( 'preload' ) ,
7785 viteResolve ( {
@@ -120,13 +128,18 @@ export default defineConfig({
120128 } ) ,
121129 renderer : defineViteConfig ( ( { mode } ) => {
122130 const commonConfig : UserConfig = {
131+ experimental : {
132+ enableNativePlugin : mode !== 'development' , // Disable native plugin in development mode to avoid issues with HMR (bug in rolldown-vite)
133+ } ,
123134 plugins : [
124135 pluginLoader ( 'renderer' ) ,
125136 viteResolve ( {
126137 'virtual:i18n' : i18nImporter ( ) ,
127138 'virtual:plugins' : pluginVirtualModuleGenerator ( 'renderer' ) ,
128139 } ) ,
129- solidPlugin ( ) ,
140+ withFilter ( solidPlugin ( ) , {
141+ load : { id : [ / \. ( t s x | j s x ) $ / , '/@solid-refresh' ] } ,
142+ } ) ,
130143 ] ,
131144 root : './src/' ,
132145 build : {
@@ -136,9 +149,6 @@ export default defineConfig({
136149 name : 'renderer' ,
137150 } ,
138151 outDir : 'dist/renderer' ,
139- commonjsOptions : {
140- ignoreDynamicRequires : true ,
141- } ,
142152 rollupOptions : {
143153 external : [ 'electron' , ...builtinModules ] ,
144154 input : './src/index.html' ,
0 commit comments