Skip to content

Commit c11a838

Browse files
committed
refactor: load cjs config
1 parent f866be9 commit c11a838

File tree

1 file changed

+6
-25
lines changed

1 file changed

+6
-25
lines changed

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

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { UserConfig } from 'vite';
99
// used to require cjs config in esm.
1010
// NOTE dynamic import() cjs technically works, but timestamp query cache bust
1111
// have no effect, likely because it has another internal cache?
12-
let _require: NodeRequire;
12+
let esmRequire: NodeRequire;
1313

1414
export const knownSvelteConfigNames = [
1515
'svelte.config.js',
@@ -52,30 +52,11 @@ export async function loadSvelteConfig(
5252
// cjs or error with dynamic import
5353
if (!configFile.endsWith('.mjs')) {
5454
try {
55-
// avoid loading cached version on reload
56-
delete require.cache[require.resolve(configFile)];
57-
const result = require(configFile);
58-
if (result != null) {
59-
return {
60-
...result,
61-
configFile
62-
};
63-
} else {
64-
throw new Error(`invalid export in ${configFile}`);
65-
}
66-
} catch (e) {
67-
log.error(`failed to require config ${configFile}`, e);
68-
if (!err) {
69-
err = e;
70-
}
71-
}
72-
}
73-
// cjs but project is using `type: module`
74-
if (!configFile.endsWith('.mjs') && import.meta.url) {
75-
try {
76-
if (!_require) {
77-
_require = createRequire(import.meta.url);
78-
}
55+
// identify which require function to use (esm and cjs mode)
56+
const _require = import.meta.url
57+
? (esmRequire ??= createRequire(import.meta.url))
58+
: require;
59+
7960
// avoid loading cached version on reload
8061
delete _require.cache[_require.resolve(configFile)];
8162
const result = _require(configFile);

0 commit comments

Comments
 (0)