diff --git a/packages/@tailwindcss-cli/hook/esm.hook.mjs b/packages/@tailwindcss-cli/hook/esm.hook.mjs new file mode 100644 index 000000000..6f693b817 --- /dev/null +++ b/packages/@tailwindcss-cli/hook/esm.hook.mjs @@ -0,0 +1,3 @@ +import { register } from 'node:module' + +register(import.meta.resolve('./esm.loader.mjs')) diff --git a/packages/@tailwindcss-cli/hook/esm.loader.mjs b/packages/@tailwindcss-cli/hook/esm.loader.mjs new file mode 100644 index 000000000..b21920a52 --- /dev/null +++ b/packages/@tailwindcss-cli/hook/esm.loader.mjs @@ -0,0 +1,23 @@ +import { isBuiltin } from 'node:module' + +export async function resolve(specifier, context, nextResolve) { + const result = await nextResolve(specifier, context) + + if (result.url === import.meta.url) return result + if (isBuiltin(result.url)) return result + if (!context.parentURL) return result + + let parent = new URL(context.parentURL) + + let id = parent.searchParams.get('id') + if (id === null) return result + + let url = new URL(result.url) + + url.searchParams.set('id', id) + + return { + ...result, + url: `${url}`, + } +}