Skip to content

Commit fa2907d

Browse files
committed
fix: primevue module resolution
1 parent bc36db9 commit fa2907d

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

src/module.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)