diff --git a/plugins/umd-to-esm.ts b/plugins/umd-to-esm.ts index e79c874..aa77d87 100644 --- a/plugins/umd-to-esm.ts +++ b/plugins/umd-to-esm.ts @@ -7,6 +7,12 @@ const targets = [ /^jsonc-parser$/, ] +const UMD_SEGMENT_PATTERN = /[/\\]umd[/\\]/ + +export function toEsmPath(resolvedModulePath: string) { + return resolvedModulePath.replace(UMD_SEGMENT_PATTERN, (matchedSegment) => matchedSegment.replace('umd', 'esm')) +} + export function umdToEsm(): Rolldown.RolldownPlugin { return { name: 'umd-to-esm', @@ -15,10 +21,10 @@ export function umdToEsm(): Rolldown.RolldownPlugin { id: targets, }, handler(source, importer) { - const require = createRequire(importer!) - const pathUmdMay = require.resolve(source) - const pathEsm = pathUmdMay.replace('/umd/', '/esm/') - return { id: pathEsm } + const require = createRequire(importer ?? import.meta.url) + const resolvedModulePath = require.resolve(source) + const resolvedEsmPath = toEsmPath(resolvedModulePath) + return { id: resolvedEsmPath } }, }, }