diff --git a/packages/babel-core/src/config/files/import-meta-resolve.ts b/packages/babel-core/src/config/files/import-meta-resolve.ts index cadb311b26f1..07aeffefe419 100644 --- a/packages/babel-core/src/config/files/import-meta-resolve.ts +++ b/packages/babel-core/src/config/files/import-meta-resolve.ts @@ -11,14 +11,16 @@ try { // import.meta.resolve is only available in ESM, but this file is compiled to CJS. // We can extract ir using dynamic import. -const resolveP = - import_ && import_("data:text/javascript,export default import.meta.resolve"); +const resolveP = import_ + ? import_("data:text/javascript,export default import.meta.resolve").then( + // Since import.meta.resolve is unstable and only available when + // using the --experimental-import-meta-resolve flag, we almost + // always use the polyfill for now. + m => m.default || polyfill, + () => polyfill, + ) + : Promise.resolve(polyfill); -export default async function getImportMetaResolve(): Promise< - ImportMeta["resolve"] -> { - // Since import.meta.resolve is unstable and only available when - // using the --experimental-import-meta-resolve flag, we almost - // always use the polyfill for now. - return (await resolveP).default || polyfill; +export default function getImportMetaResolve(): Promise { + return resolveP; }