From 7a68e1e2d6566073a8d47aadcb0520a9b0a0e9bd Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 25 Apr 2024 22:03:12 +0100 Subject: [PATCH] fix: mark `runtime/` directory as external resolves https://github.com/nuxt/module-builder/issues/242 --- example/src/module.ts | 7 +++++++ example/src/runtime/plugins/plugin.ts | 2 ++ src/commands/build.ts | 1 + 3 files changed, 10 insertions(+) diff --git a/example/src/module.ts b/example/src/module.ts index 5eff7ed..1e8f104 100644 --- a/example/src/module.ts +++ b/example/src/module.ts @@ -1,8 +1,12 @@ import { defineNuxtModule, addPlugin, createResolver } from '@nuxt/kit' +// https://github.com/nuxt/module-builder/issues/242 +import type { SharedTypeFromRuntime } from './runtime/plugins/plugin' + // Module options TypeScript interface definition export interface ModuleOptions { apiKey: string + shared?: SharedTypeFromRuntime } export interface ModuleHooks { @@ -33,6 +37,9 @@ export default defineNuxtModule({ setup(_options, _nuxt) { const resolver = createResolver(import.meta.url) + // @ts-expect-error type should be resolved + _options.shared = 'not-shared-type' + // Do not add the extension since the `.ts` will be transpiled to `.mjs` after `npm run prepack` addPlugin(resolver.resolve('./runtime/plugins/plugin')) }, diff --git a/example/src/runtime/plugins/plugin.ts b/example/src/runtime/plugins/plugin.ts index 3b21970..c9cad19 100644 --- a/example/src/runtime/plugins/plugin.ts +++ b/example/src/runtime/plugins/plugin.ts @@ -1,5 +1,7 @@ import { defineNuxtPlugin } from '#app' +export type SharedTypeFromRuntime = 'shared-type' + export default defineNuxtPlugin(() => { console.log('Plugin injected by my-module!') return { diff --git a/src/commands/build.ts b/src/commands/build.ts index 7f16650..f81e456 100644 --- a/src/commands/build.ts +++ b/src/commands/build.ts @@ -58,6 +58,7 @@ export default defineCommand({ cjsBridge: true, }, externals: [ + /src\/runtime/, '@nuxt/schema', '@nuxt/schema-nightly', '@nuxt/schema-edge',