Skip to content

Commit f866be9

Browse files
committed
fix: really load cjs config
1 parent ca46019 commit f866be9

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

packages/vite-plugin-svelte/src/utils/load-svelte-config.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import { log } from './log';
66
import { Options } from './options';
77
import { UserConfig } from 'vite';
88

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;
1013

1114
export const knownSvelteConfigNames = [
1215
'svelte.config.js',
@@ -50,8 +53,8 @@ export async function loadSvelteConfig(
5053
if (!configFile.endsWith('.mjs')) {
5154
try {
5255
// 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);
5558
if (result != null) {
5659
return {
5760
...result,
@@ -68,11 +71,14 @@ export async function loadSvelteConfig(
6871
}
6972
}
7073
// cjs but project is using `type: module`
71-
if (!configFile.endsWith('.mjs')) {
74+
if (!configFile.endsWith('.mjs') && import.meta.url) {
7275
try {
76+
if (!_require) {
77+
_require = createRequire(import.meta.url);
78+
}
7379
// 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);
7682
if (result != null) {
7783
return {
7884
...result,

0 commit comments

Comments
 (0)