From 6c7d43084552b16bbf81127d06e5c41d13094414 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 14 Dec 2023 13:58:25 +0000 Subject: [PATCH] refactor(nuxt): remove `process.*` usage in nuxt vue app (#24749) --- packages/nuxt/index.d.ts | 1 + packages/nuxt/src/app/components/client-only.ts | 4 ++-- packages/nuxt/src/app/composables/ssr.ts | 2 +- packages/nuxt/src/app/nuxt.ts | 2 +- packages/nuxt/src/app/plugins/payload.client.ts | 2 +- packages/nuxt/src/head/module.ts | 2 +- packages/vite/src/vite.ts | 2 +- packages/webpack/src/presets/base.ts | 2 +- vitest.config.ts | 3 --- 9 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/nuxt/index.d.ts b/packages/nuxt/index.d.ts index 99dd4ded99..3135b899a1 100644 --- a/packages/nuxt/index.d.ts +++ b/packages/nuxt/index.d.ts @@ -1,6 +1,7 @@ /* eslint-disable no-var */ declare global { var __NUXT_VERSION__: string + var __NUXT_ASYNC_CONTEXT__: boolean var __NUXT_PREPATHS__: string[] | string | undefined var __NUXT_PATHS__: string[] | string | undefined diff --git a/packages/nuxt/src/app/components/client-only.ts b/packages/nuxt/src/app/components/client-only.ts index 1840127d5d..c1ce985ea5 100644 --- a/packages/nuxt/src/app/components/client-only.ts +++ b/packages/nuxt/src/app/components/client-only.ts @@ -41,7 +41,7 @@ export function createClientOnly (component: T) { : h(res) } else { const fragment = getFragmentHTML(ctx._.vnode.el ?? null) ?? ['
'] - return process.client ? createStaticVNode(fragment.join(''), fragment.length) : h('div', ctx.$attrs ?? ctx._.attrs) + return import.meta.client ? createStaticVNode(fragment.join(''), fragment.length) : h('div', ctx.$attrs ?? ctx._.attrs) } } } else if (clone.template) { @@ -80,7 +80,7 @@ export function createClientOnly (component: T) { : h(res) } else { const fragment = getFragmentHTML(instance?.vnode.el ?? null) ?? ['
'] - return process.client ? createStaticVNode(fragment.join(''), fragment.length) : h('div', ctx.attrs) + return import.meta.client ? createStaticVNode(fragment.join(''), fragment.length) : h('div', ctx.attrs) } } }) diff --git a/packages/nuxt/src/app/composables/ssr.ts b/packages/nuxt/src/app/composables/ssr.ts index 6e5dc7cc08..592845b53b 100644 --- a/packages/nuxt/src/app/composables/ssr.ts +++ b/packages/nuxt/src/app/composables/ssr.ts @@ -36,7 +36,7 @@ export function setResponseStatus (arg1: H3Event | number | undefined, arg2?: nu } export function prerenderRoutes (path: string | string[]) { - if (!process.server || !process.env.prerender) { return } + if (!import.meta.server || !import.meta.prerender) { return } const paths = Array.isArray(path) ? path : [path] appendHeader(useRequestEvent(), 'x-nitro-prerender', paths.map(p => encodeURIComponent(p)).join(', ')) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 9053881a2c..21c8f3f744 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -19,7 +19,7 @@ import type { AsyncDataRequestStatus } from '../app/composables/asyncData' import type { NuxtAppManifestMeta } from '../app/composables/manifest' const nuxtAppCtx = /*@__PURE__*/ getContext('nuxt-app', { - asyncContext: !!process.env.NUXT_ASYNC_CONTEXT && process.server + asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server }) type HookResult = Promise | void diff --git a/packages/nuxt/src/app/plugins/payload.client.ts b/packages/nuxt/src/app/plugins/payload.client.ts index cec391b3db..452fa841cf 100644 --- a/packages/nuxt/src/app/plugins/payload.client.ts +++ b/packages/nuxt/src/app/plugins/payload.client.ts @@ -11,7 +11,7 @@ export default defineNuxtPlugin({ name: 'nuxt:payload', setup (nuxtApp) { // TODO: Support dev - if (process.dev) { return } + if (import.meta.dev) { return } // Load payload after middleware & once final route is resolved useRouter().beforeResolve(async (to, from) => { diff --git a/packages/nuxt/src/head/module.ts b/packages/nuxt/src/head/module.ts index aed2b0fd73..5964ecc527 100644 --- a/packages/nuxt/src/head/module.ts +++ b/packages/nuxt/src/head/module.ts @@ -62,7 +62,7 @@ export default defineNuxtModule({ return 'export default []' } return `import { CapoPlugin } from ${JSON.stringify(unheadVue)}; -export default process.server ? [CapoPlugin({ track: true })] : [];` +export default import.meta.server ? [CapoPlugin({ track: true })] : [];` } }) diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index 23770d284d..565516de30 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -77,7 +77,7 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { css: resolveCSSOptions(nuxt), define: { __NUXT_VERSION__: JSON.stringify(nuxt._version), - 'process.env.NUXT_ASYNC_CONTEXT': nuxt.options.experimental.asyncContext + __NUXT_ASYNC_CONTEXT__: nuxt.options.experimental.asyncContext }, build: { copyPublicDir: false, diff --git a/packages/webpack/src/presets/base.ts b/packages/webpack/src/presets/base.ts index 55cf7c0eca..1d35e1bbc9 100644 --- a/packages/webpack/src/presets/base.ts +++ b/packages/webpack/src/presets/base.ts @@ -217,8 +217,8 @@ function getEnv (ctx: WebpackConfigContext) { const _env: Record = { 'process.env.NODE_ENV': JSON.stringify(ctx.config.mode), __NUXT_VERSION__: JSON.stringify(ctx.nuxt._version), + __NUXT_ASYNC_CONTEXT__: ctx.options.experimental.asyncContext, 'process.env.VUE_ENV': JSON.stringify(ctx.name), - 'process.env.NUXT_ASYNC_CONTEXT': ctx.options.experimental.asyncContext, 'process.dev': ctx.options.dev, 'process.test': isTest, 'process.browser': ctx.isClient, diff --git a/vitest.config.ts b/vitest.config.ts index 85d3cd0bed..56d41a3aea 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -11,9 +11,6 @@ export default defineConfig({ '#app': resolve('./packages/nuxt/dist/app') } }, - define: { - 'process.env.NUXT_ASYNC_CONTEXT': 'false' - }, test: { globalSetup: './test/setup.ts', setupFiles: ['./test/setup-env.ts'],