diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 7bc3be4822..a9bfbdc324 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -5,6 +5,7 @@ import viteJsxPlugin from '@vitejs/plugin-vue-jsx' import { logger, resolvePath, tryResolveModule } from '@nuxt/kit' import { joinURL, withTrailingSlash, withoutLeadingSlash } from 'ufo' import type { ViteConfig } from '@nuxt/schema' +import replace from '@rollup/plugin-replace' import type { ViteBuildContext } from './vite' import { createViteLogger } from './utils/logger' import { initViteNodeServer } from './vite-node' @@ -43,12 +44,7 @@ export async function buildServer (ctx: ViteBuildContext) { 'process.browser': false, 'import.meta.server': true, 'import.meta.client': false, - 'import.meta.browser': false, - 'typeof window': '"undefined"', - 'typeof document': '"undefined"', - 'typeof navigator': '"undefined"', - 'typeof location': '"undefined"', - 'typeof XMLHttpRequest': '"undefined"' + 'import.meta.browser': false }, optimizeDeps: { entries: ctx.nuxt.options.ssr ? [ctx.entry] : [] @@ -100,7 +96,18 @@ export async function buildServer (ctx: ViteBuildContext) { preTransformRequests: false, hmr: false }, - plugins: [] + plugins: [ + replace({ + values: { + 'typeof window': '"undefined"', + 'typeof document': '"undefined"', + 'typeof navigator': '"undefined"', + 'typeof location': '"undefined"', + 'typeof XMLHttpRequest': '"undefined"' + }, + preventAssignment: true + }) + ] } satisfies vite.InlineConfig, ctx.nuxt.options.vite.$server || {})) if (!ctx.nuxt.options.dev) {