Skip to content

Commit

Permalink
fix: unexpected temporary file (#13267)
Browse files Browse the repository at this point in the history
  • Loading branch information
s10y10 authored and yang.song committed Jun 7, 2023
1 parent 367920b commit b564c9d
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions packages/vite/src/node/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1141,18 +1141,17 @@ async function loadConfigFromBundledFile(
): Promise<UserConfigExport> {
// for esm, before we can register loaders without requiring users to run node
// 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.
// convert to base64, load it with native Node ESM.
if (isESM) {
const fileBase = `${fileName}.timestamp-${Date.now()}-${Math.random()
.toString(16)
.slice(2)}`
const fileNameTmp = `${fileBase}.mjs`
const fileUrl = `${pathToFileURL(fileBase)}.mjs`
await fsp.writeFile(fileNameTmp, bundledCode)
try {
return (await dynamicImport(fileUrl)).default
} finally {
fs.unlink(fileNameTmp, () => {}) // Ignore errors
return (
await dynamicImport(
'data:text/javascript;base64,' +
Buffer.from(bundledCode).toString('base64'),
)
).default
} catch (e) {
throw new Error(`${e.message} at ${fileName}`)
}
}
// for cjs, we can register a custom loader via `_require.extensions`
Expand Down

0 comments on commit b564c9d

Please sign in to comment.