You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3生产模式(ssr:false)启动报错process is not defined

问题诱因

process is not defined报错的核心原因是你引入的@nuxtjs/axios模块是面向Nuxt 2开发的版本,完全不兼容Nuxt 3的生产构建逻辑:

  • 该模块内部在客户端侧代码中直接引用了Node.js环境专属的process全局对象,开发模式下Vite会自动注入兼容垫片,因此不会触发报错;生产构建时默认不会注入这类兼容旧模块的垫片,浏览器端执行代码时就会直接抛出该错误。
  • 由于报错发生在客户端代码执行阶段,服务端进程不会捕获对应异常,因此本地启动控制台、Heroku平台都不会生成相关错误日志,和你遇到的现象完全吻合。
  • 你注释掉的Vitedefine配置仅能解决手动编写代码里的process.env.DEBUG引用,无法覆盖@nuxtjs/axios模块内部的所有process相关调用,因此单独放开这段注释也无法解决问题。
修复方案

按优先级选择以下方案即可:

方案1(官方推荐,无兼容问题)

卸载不兼容的Nuxt2版axios模块,使用Nuxt3原生提供的请求能力:

  1. 执行卸载命令:npm uninstall @nuxtjs/axios
  2. 删除nuxt.config.ts中modules数组内的['@nuxtjs/axios', { proxyHeaders: false }]配置项
  3. 将项目中所有基于@nuxtjs/axios的请求逻辑,替换为Nuxt3内置的$fetch/useFetch/useAsyncData方法,这类方法原生适配SPA/SSR双模式,不需要额外配置兼容垫片。

方案2(临时兼容,保留axios使用习惯)

如果暂时无法重构现有axios请求逻辑,不要使用旧版@nuxtjs/axios模块,改为直接引入原生axios配合自定义插件注入,同时补全Vite构建垫片:

  1. 执行命令卸载旧模块、安装原生axios:
npm uninstall @nuxtjs/axios
npm install axios
  1. 修改nuxt.config.ts配置,补全Vite的process兼容配置,最终配置如下:
import { defineNuxtConfig } from 'nuxt'

// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
  css: ['vuetify/lib/styles/main.sass', 'mdi/css/materialdesignicons.min.css', '@/assets/sass/main.sass'],
  build: {
    transpile: ['vuetify'],
  },
  vite: {
    define: {
      'process.env.DEBUG': false,
      'process.env': JSON.stringify({}),
      global: 'globalThis'
    },
  },
  modules: [
    '@pinia/nuxt'
  ],
  ssr: false // Disable server side rendering
})
  1. 在项目plugins目录下新建axios.client.ts文件,自行封装axios实例注入到Nuxt运行时即可。

修改完成后重新执行npm run build构建,再启动node .output/server/index.mjs即可正常访问页面,不会再出现500错误。

报错页面截图

内容的提问来源于stack exchange,提问作者DonMB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 16:01:08