@@ -103,11 +103,18 @@ const _module: NuxtModule<NuxtStoriesOptions> = defineNuxtModule<NuxtStoriesOpti
103103
104104 // @primevue /nuxt-module generates code that imports from 'primevue', '@primeuix/themes', etc.
105105 // Those packages live in nuxt-stories' own node_modules, not the consumer's.
106- // Add that directory to modulesDir so Nuxt/Vite can resolve them.
106+ // • alias → Vite client/SSR: virtual modules (virtual:#primevue-style) resolve
107+ // subpath imports (primevue/button/style) via explicit directory mapping
108+ // • modulesDir → Vite bare-import fallback
109+ // • nitro.nodeModulesDirs → Nitro server bundle + Node.js dev runtime resolution
110+ let storiesNodeModules : string | null = null
107111 if ( mode !== 'frame' ) {
108112 try {
109113 const primevuePkg = fileURLToPath ( import . meta. resolve ( 'primevue/package.json' ) )
110- const storiesNodeModules = path . dirname ( path . dirname ( primevuePkg ) )
114+ const primevueDir = path . dirname ( primevuePkg )
115+ storiesNodeModules = path . dirname ( primevueDir )
116+ // Alias so Vite resolves primevue/* subpath imports from the virtual module context
117+ nuxt . options . alias [ 'primevue' ] = primevueDir
111118 if ( ! nuxt . options . modulesDir . includes ( storiesNodeModules ) ) {
112119 nuxt . options . modulesDir . push ( storiesNodeModules )
113120 }
@@ -433,6 +440,12 @@ const _module: NuxtModule<NuxtStoriesOptions> = defineNuxtModule<NuxtStoriesOpti
433440
434441 // NITRO CONFIG — serve the module's static public assets (stories.css, etc.)
435442 nuxt . hook ( 'nitro:config' , ( nitroConfig ) => {
443+ // Expose nuxt-stories' node_modules to Nitro so primevue and related
444+ // packages can be resolved in the server bundle and at Node.js dev runtime.
445+ if ( storiesNodeModules ) {
446+ nitroConfig . nodeModulesDirs = [ ...( nitroConfig . nodeModulesDirs || [ ] ) , storiesNodeModules ]
447+ }
448+
436449 // Register story paths for static generation (nuxi generate).
437450 // Done here (not inside extendPages) to guarantee the routes are visible
438451 // to Nitro — pages:extend is awaited before nitro:config fires.
0 commit comments