Skip to content

Runtime Plugin types as any after nuxt-module-build; possibly #app is unresolved on build #93

Closed
@akasection

Description

@akasection

Problem

When we build a module with runtime plugin (and the plugin provides a provider via return { provide }), the plugin type becomes any, instead of provided type.

Reproduction

> pnpx nuxi init -t module sample-nuxt-module
> pnpm i
> pnpm add pino
> (go to src/runtime/plugin.ts) and edit:
> 
import { defineNuxtPlugin } from '#app'
import Pino from 'pino'

export default defineNuxtPlugin((nuxtApp) => {
  console.log('Plugin injected by my-module!')
  const log = Pino()

  return {
    provide: {
      log
    }
  }
})

> pnpm pack / pnpm nuxi-module-build
> (go to /dist/runtime/plugin.d.ts)

Sandbox: https://codesandbox.io/p/sandbox/sample-nuxt-module-build-ts-bug-xnk8ev

Expected

declare const _default: import("nuxt/app").Plugin<{
    log: import("pino").Logger<import("pino").LoggerOptions | import("pino").DestinationStream>;
}>;
export default _default;

Actual

declare const _default: any;
export default _default;

Info


  • Operating System: Linux
  • Node Version: v18.13.0
  • Nuxt Version: 3.2.2
  • Nitro Version: 2.2.3
  • Package Manager: [email protected]
  • Builder: vite
  • User Config: -
  • Runtime Modules: -
  • Build Modules: -

Additional Info

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions