@@ -6,7 +6,10 @@ import { log } from './log';
6
6
import { Options } from './options' ;
7
7
import { UserConfig } from 'vite' ;
8
8
9
- const _require = createRequire ( import . meta. url ) ;
9
+ // used to require cjs config in esm.
10
+ // NOTE dynamic import() cjs technically works, but timestamp query cache bust
11
+ // have no effect, likely because it has another internal cache?
12
+ let _require : NodeRequire ;
10
13
11
14
export const knownSvelteConfigNames = [
12
15
'svelte.config.js' ,
@@ -50,8 +53,8 @@ export async function loadSvelteConfig(
50
53
if ( ! configFile . endsWith ( '.mjs' ) ) {
51
54
try {
52
55
// avoid loading cached version on reload
53
- delete _require . cache [ _require . resolve ( configFile ) ] ;
54
- const result = _require ( configFile ) ;
56
+ delete require . cache [ require . resolve ( configFile ) ] ;
57
+ const result = require ( configFile ) ;
55
58
if ( result != null ) {
56
59
return {
57
60
...result ,
@@ -68,11 +71,14 @@ export async function loadSvelteConfig(
68
71
}
69
72
}
70
73
// cjs but project is using `type: module`
71
- if ( ! configFile . endsWith ( '.mjs' ) ) {
74
+ if ( ! configFile . endsWith ( '.mjs' ) && import . meta . url ) {
72
75
try {
76
+ if ( ! _require ) {
77
+ _require = createRequire ( import . meta. url ) ;
78
+ }
73
79
// avoid loading cached version on reload
74
- delete require . cache [ require . resolve ( configFile ) ] ;
75
- const result = require ( configFile ) ;
80
+ delete _require . cache [ _require . resolve ( configFile ) ] ;
81
+ const result = _require ( configFile ) ;
76
82
if ( result != null ) {
77
83
return {
78
84
...result ,
0 commit comments