From afc9d9938683f7c1e3bf41bf38b2b58c87d0a38e Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Tue, 19 Jul 2022 18:36:27 +0200 Subject: [PATCH] fix: make `resolveConfig()` concurrent safe --- packages/vite/src/node/config.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f0c46ed9f94b19..2821e5f4c1575b 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -1020,12 +1020,13 @@ async function loadConfigFromBundledFile( // with --experimental-loader themselves, we have to do a hack here: // write it to disk, load it with native Node ESM, then delete the file. if (isESM) { - const fileUrl = pathToFileURL(fileName) - fs.writeFileSync(fileName + '.mjs', bundledCode) + const fileNameTmp = `${fileName}.timestamp-${Date.now()}.mjs` + const fileUrl = pathToFileURL(fileNameTmp) + fs.writeFileSync(fileNameTmp, bundledCode) try { - return (await dynamicImport(`${fileUrl}.mjs?t=${Date.now()}`)).default + return (await dynamicImport(`${fileUrl}.mjs`)).default } finally { - fs.unlinkSync(fileName + '.mjs') + fs.unlinkSync(fileNameTmp) } } // for cjs, we can register a custom loader via `_require.extensions`