From 87199a174ed662dffc6d1eeaa04116635576fca6 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 10 May 2024 15:58:39 +0200 Subject: [PATCH] fix: module builder chunk path patch --- packages/devtools/build.config.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/packages/devtools/build.config.ts b/packages/devtools/build.config.ts index 4dc7760be..6b3045aad 100644 --- a/packages/devtools/build.config.ts +++ b/packages/devtools/build.config.ts @@ -1,3 +1,4 @@ +import { fileURLToPath } from 'node:url' import { defineBuildConfig } from 'unbuild' export default defineBuildConfig({ @@ -22,4 +23,32 @@ export default defineBuildConfig({ rollup: { inlineDependencies: true, }, + hooks: { + // Patch @nuxt/module-builder@0.6.0 not adding .mjs extension for runtime files + // https://github.com/nuxt/module-builder/issues/261 + 'rollup:options': (_, options) => { + options.plugins ||= [] + if (!Array.isArray(options.plugins)) + options.plugins = [options.plugins] + + const runtimeDir = fileURLToPath(new URL('./src/runtime', import.meta.url)) + options.plugins.unshift({ + name: 'unbuild:runtime-build:patch', + async resolveId(id, importter) { + if (!id.includes('runtime')) + return + const resolved = await this.resolve(id, importter, { skipSelf: true }) + if (resolved?.id.startsWith(runtimeDir)) { + let id = resolved.id + if (!id.endsWith('.mjs')) + id += '.mjs' + return { + external: true, + id, + } + } + }, + }) + }, + }, })