fix(vite): use rollup replace plugin for typeof optimisations (#23903)

This commit is contained in:
Daniel Roe 2023-11-14 13:22:40 +01:00 committed by GitHub
parent 9288e6fe1d
commit 86693c1005
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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