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

Next.js应用中process.env.NODE_ENV设置异常求助

解决Next.js中NODE_ENV始终显示production的问题

核心原因很明确:Next.js的next build命令会强制把NODE_ENV设为production,不管你在.env.local里怎么配置,也不管你在build前加了什么环境变量前缀,这是框架内置的行为,目的是确保生产构建的代码优化、压缩等逻辑正常生效。

给你几个可行的解决方向:

  • 如果你只是需要开发模式运行,别用next build,直接跑next dev -p 3000就行。这个命令会自动把NODE_ENV设为development,同时会加载你.env.local里的所有配置,完全符合你的需求。

  • 如果你确实要构建后以development模式启动(不推荐,生产构建的优化会失效),得把build和start的命令分开执行:

    1. 先单独执行next build(此时NODE_ENV是production,生成生产包)
    2. 再执行启动命令,注意要在next start前设置NODE_ENV:
      • Linux/macOS:NODE_ENV=development next start -p 3000
      • Windows(PowerShell):$env:NODE_ENV="development"; next start -p 3000
        这样启动时会覆盖NODE_ENV为development,而build阶段的环境不影响启动后的运行环境。
  • 极端情况可以在next.config.js里手动指定,但不建议这么做,会破坏框架默认的环境逻辑:

    module.exports = {
      env: {
        NODE_ENV: process.env.NODE_ENV || 'development'
      }
    }
    

    配置完后用NODE_ENV=development next start -p 3000启动即可。

验证是否生效的话,在你的组件里加一行打印:

console.log('当前NODE_ENV:', process.env.NODE_ENV);

启动后看控制台输出就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:54:54