Skip to content

Commit dfaeb2b

Browse files
authoredJul 19, 2022
fix: make resolveConfig() concurrent safe (#9224)
1 parent ae5639c commit dfaeb2b

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed
 

‎packages/vite/src/node/config.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -1020,12 +1020,14 @@ async function loadConfigFromBundledFile(
10201020
// with --experimental-loader themselves, we have to do a hack here:
10211021
// write it to disk, load it with native Node ESM, then delete the file.
10221022
if (isESM) {
1023-
const fileUrl = pathToFileURL(fileName)
1024-
fs.writeFileSync(fileName + '.mjs', bundledCode)
1023+
const fileBase = `${fileName}.timestamp-${Date.now()}`
1024+
const fileNameTmp = `${fileBase}.mjs`
1025+
const fileUrl = `${pathToFileURL(fileBase)}.mjs`
1026+
fs.writeFileSync(fileNameTmp, bundledCode)
10251027
try {
1026-
return (await dynamicImport(`${fileUrl}.mjs?t=${Date.now()}`)).default
1028+
return (await dynamicImport(fileUrl)).default
10271029
} finally {
1028-
fs.unlinkSync(fileName + '.mjs')
1030+
fs.unlinkSync(fileNameTmp)
10291031
}
10301032
}
10311033
// for cjs, we can register a custom loader via `_require.extensions`

0 commit comments

Comments
 (0)
Please sign in to comment.