diff --git a/packages/oxc/src/modules/rpc.ts b/packages/oxc/src/modules/rpc.ts index 8f40d97eb..fb97fc0a7 100644 --- a/packages/oxc/src/modules/rpc.ts +++ b/packages/oxc/src/modules/rpc.ts @@ -1,14 +1,23 @@ +import type { PluginWithDevTools } from '@vitejs/devtools-kit' import { addVitePlugin, defineNuxtModule } from '@nuxt/kit' import { DevToolsServer } from '../../../core/src/node/plugins/server' import { rpcFunctions } from '../node/rpc' +// `@nuxt/kit` types `addVitePlugin` against whatever `vite` install pnpm +// resolves for its own peer chain, which can differ from the one our +// plugins are built against even on the same `vite` version — cast past +// the resulting structural mismatch. +function addDevToolsVitePlugin(plugin: T): void { + addVitePlugin(plugin as unknown as Parameters[0]) +} + export default defineNuxtModule({ meta: { name: 'devtools-rpc', configKey: 'devtoolsRpc', }, setup() { - addVitePlugin({ + const rpcPlugin: PluginWithDevTools = { name: 'vite:devtools:oxc', devtools: { setup(ctx) { @@ -17,8 +26,9 @@ export default defineNuxtModule({ } }, }, - }) + } + addDevToolsVitePlugin(rpcPlugin) - addVitePlugin(DevToolsServer()) + addDevToolsVitePlugin(DevToolsServer()) }, }) diff --git a/packages/rolldown/src/modules/rpc.ts b/packages/rolldown/src/modules/rpc.ts index cddc007cb..583346180 100644 --- a/packages/rolldown/src/modules/rpc.ts +++ b/packages/rolldown/src/modules/rpc.ts @@ -1,14 +1,23 @@ +import type { PluginWithDevTools } from '@vitejs/devtools-kit' import { addVitePlugin, defineNuxtModule } from '@nuxt/kit' import { DevToolsServer } from '../../../core/src/node/plugins/server' import { rpcFunctions } from '../node/rpc' +// `@nuxt/kit` types `addVitePlugin` against whatever `vite` install pnpm +// resolves for its own peer chain, which can differ from the one our +// plugins are built against even on the same `vite` version — cast past +// the resulting structural mismatch. +function addDevToolsVitePlugin(plugin: T): void { + addVitePlugin(plugin as unknown as Parameters[0]) +} + export default defineNuxtModule({ meta: { name: 'devtools-rpc', configKey: 'devtoolsRpc', }, setup() { - addVitePlugin({ + const rpcPlugin: PluginWithDevTools = { name: 'vite:devtools:rolldown', devtools: { setup(ctx) { @@ -17,8 +26,9 @@ export default defineNuxtModule({ } }, }, - }) + } + addDevToolsVitePlugin(rpcPlugin) - addVitePlugin(DevToolsServer()) + addDevToolsVitePlugin(DevToolsServer()) }, }) diff --git a/packages/vite/src/modules/rpc.ts b/packages/vite/src/modules/rpc.ts index 184d67908..2162182aa 100644 --- a/packages/vite/src/modules/rpc.ts +++ b/packages/vite/src/modules/rpc.ts @@ -2,13 +2,21 @@ import { addVitePlugin, defineNuxtModule } from '@nuxt/kit' import { DevToolsServer } from '../../../core/src/node/plugins/server' import { DevToolsViteInspect } from '../node/inspect/plugin' +// `@nuxt/kit` types `addVitePlugin` against whatever `vite` install pnpm +// resolves for its own peer chain, which can differ from the one our +// plugins are built against even on the same `vite` version — cast past +// the resulting structural mismatch. +function addDevToolsVitePlugin(plugin: T): void { + addVitePlugin(plugin as unknown as Parameters[0]) +} + export default defineNuxtModule({ meta: { name: 'devtools-rpc', configKey: 'devtoolsRpc', }, setup() { - addVitePlugin(DevToolsViteInspect()) - addVitePlugin(DevToolsServer()) + addDevToolsVitePlugin(DevToolsViteInspect()) + addDevToolsVitePlugin(DevToolsServer()) }, })