From 86693c1005759034833da19193ab7d091fcab02d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 14 Nov 2023 13:22:40 +0100 Subject: [PATCH] fix(vite): use rollup replace plugin for `typeof` optimisations (#23903) --- packages/vite/src/server.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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) {