1
1
import { existsSync , promises as fs } from 'node:fs'
2
2
import { join } from 'node:path'
3
3
import { uniq } from '@antfu/utils'
4
- import { loadConfigFromFile , mergeConfig } from 'vite'
4
+ import { loadConfigFromFile , mergeConfig , resolveConfig } from 'vite'
5
5
import type { ConfigEnv , InlineConfig } from 'vite'
6
6
import type { ResolvedSlidevOptions } from './options'
7
7
import { generateGoogleFontsUrl , toAtFS } from './utils'
@@ -44,12 +44,17 @@ export async function getIndexHtml({ clientRoot, themeRoots, addonRoots, data, u
44
44
return main
45
45
}
46
46
47
- export async function mergeViteConfigs ( { addonRoots, themeRoots } : ResolvedSlidevOptions , viteConfig : InlineConfig , config : InlineConfig , command : 'serve' | 'build' ) {
47
+ export async function mergeViteConfigs (
48
+ { addonRoots, themeRoots, entry } : ResolvedSlidevOptions ,
49
+ viteConfig : InlineConfig ,
50
+ config : InlineConfig ,
51
+ command : 'serve' | 'build' ,
52
+ ) {
48
53
const configEnv : ConfigEnv = {
49
54
mode : 'development' ,
50
55
command,
51
56
}
52
-
57
+ // Merge theme & addon configs
53
58
const files = uniq ( [
54
59
...themeRoots ,
55
60
...addonRoots ,
@@ -64,5 +69,12 @@ export async function mergeViteConfigs({ addonRoots, themeRoots }: ResolvedSlide
64
69
config = mergeConfig ( config , viteConfig . config )
65
70
}
66
71
67
- return mergeConfig ( viteConfig , config )
72
+ // Merge viteConfig argument
73
+ config = mergeConfig ( config , viteConfig )
74
+
75
+ // Merge local config (slidev options only)
76
+ const localConfig = await resolveConfig ( { } , command , entry )
77
+ config = mergeConfig ( config , { slidev : localConfig . slidev || { } } )
78
+
79
+ return config
68
80
}
0 commit comments