Nuxt 3开发模式下Node19+中proxyRequest失效问题求助
Nuxt 3兜底服务器中间件Node 19+开发模式异常问题
问题现象
- Node 18环境下,
server/api/[...].ts中间件可正常运行:
server/api/[...].ts
import { joinURL } from 'ufo'; export default defineEventHandler((event) => { const config = useRuntimeConfig(); const path = event.path.replace(/^\/api\//, ''); const target = joinURL(config.backendUrl, path); console.log('Proxy -->', target); return proxyRequest(event, target); });
- Node 19.0.0及以上版本:
console.log能正常执行,但Web应用无法加载;将proxyRequest(event, target);替换为return event;可临时解决加载问题 - 仅开发模式出现该异常,生产构建运行完全正常
排查进展
使用该中间件搭建的最小复现项目在Node19+环境下运行正常,说明问题出在当前应用自身配置中。以下是我的Nuxt配置代码:
import svgLoader from 'vite-svg-loader'; import type { ConsentType } from './composables/useConsentControl'; import { ENV } from './constants/environments'; const autoImportDirs = ['constants', 'stores']; export default defineNuxtConfig({ telemetry: false, experimental: { // https://github.com/nuxt/nuxt/pull/23725 defaults: { useAsyncData: { deep: false, }, }, }, components: [ { path: '~/components', pathPrefix: false, }, ], nitro: { imports: { dirs: autoImportDirs, }, compressPublicAssets: { gzip: true, brotli: true, }, }, imports: { dirs: autoImportDirs, }, vite: { plugins: [ svgLoader({ defaultImport: 'url', }), ], }, css: ['@/assets/styles/main.scss'], devtools: { enabled: process.env.NUXT_PUBLIC_ENVIRONMENT !== ENV.PRODUCTION }, modules: ['@vueuse/nuxt', '@pinia/nuxt', 'nuxt-jsonld', '@nuxt/image', '@zadigetvoltaire/nuxt-gtm', '@dargmuesli/nuxt-cookie-control'], pinia: { storesDirs: ['./stores/**', './ranking/**'], }, image: { domains: ['https://static.ecommercedb.com'], }, runtimeConfig: { baseUrl: process.env.NUXT_BASE_URL, // and many other env vars }, public: { // many env vars }, }, }
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

