From 49a7039359c4811b7503fad8231ec156eec89fa6 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote <posva13@gmail.com> Date: Sun, 3 Nov 2024 09:18:26 +0100 Subject: [PATCH] fix: dedupe pinia Fix #2820 --- packages/nuxt/src/module.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/nuxt/src/module.ts b/packages/nuxt/src/module.ts index 972922194e..89dd7efaf5 100644 --- a/packages/nuxt/src/module.ts +++ b/packages/nuxt/src/module.ts @@ -7,7 +7,6 @@ import { isNuxtMajorVersion, addImports, createResolver, - resolveModule, addImportsDir, } from '@nuxt/kit' import type { NuxtModule } from '@nuxt/schema' @@ -63,15 +62,14 @@ const module: NuxtModule<ModuleOptions> = defineNuxtModule<ModuleOptions>({ // Transpile runtime nuxt.options.build.transpile.push(resolve(runtimeDir)) - // This alias broke in Nuxt 3 so only add it in Nuxt 2 - if (isNuxtMajorVersion(2, nuxt)) { - // Make sure we use the mjs build for pinia - nuxt.options.alias.pinia = - nuxt.options.alias.pinia || - // FIXME: remove this deprecated call. Ensure it works in Nuxt 2 to 3 - resolveModule('pinia/dist/pinia.mjs', { - paths: [nuxt.options.rootDir, import.meta.url], - }) + // dedupe pinia only if not building for SSR + // https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/src/index.ts#L221 + if (!nuxt.options.vite?.build?.ssr) { + nuxt.options.vite.resolve ??= {} + nuxt.options.vite.resolve.dedupe ??= [] + if (!nuxt.options.vite.resolve.dedupe.includes('pinia')) { + nuxt.options.vite.resolve.dedupe.push('pinia') + } } nuxt.hook('prepare:types', ({ references }) => {