Windows下NODE_ENV设置异常:Next.js非标准值报错求助
解决Next.js "You are using a non-standard 'NODE_ENV' value in your environment" 错误
核心问题说明
你之前的操作存在两个关键错误:
- Next.js 仅允许
NODE_ENV取三个合法值:development、production、test,设置为NEXT_PUBLIC_APP_ENV完全不符合框架要求 NEXT_PUBLIC_APP_ENV是自定义客户端环境变量的命名前缀(用于让变量暴露给浏览器端),和NODE_ENV是完全不同的概念,Next.js 不会将它作为NODE_ENV的默认值
解决步骤
1. 彻底清除错误的系统环境变量
Windows 下 setx 设置的是用户环境变量,变更不会立即生效到当前终端,建议手动删除更彻底:
- 打开「控制面板 → 系统和安全 → 系统 → 高级系统设置 → 环境变量」
- 在「用户变量」或「系统变量」中找到
NODE_ENV,点击删除 - 保存后重启所有打开的终端窗口,避免旧环境变量残留
如果想用命令行清除,可在管理员终端运行:
setx NODE_ENV ""
2. 验证环境变量是否恢复正常
新开终端,运行以下命令确认 NODE_ENV 已被清除:
# Windows 命令行验证 echo %NODE_ENV% # 通过 Node.js 验证 node -e "console.log(process.env.NODE_ENV)"
正常情况下输出应为空(Next.js 会自动根据运行命令设置对应值)。
3. 检查项目内的自定义配置
确保项目中没有手动硬设 NODE_ENV:
- 检查项目根目录下的
.env、.env.local、.env.development、.env.production等环境变量文件,若有NODE_ENV=xxx的行,直接删除 - 打开
package.json,查看scripts字段,比如:
确保"scripts": { "dev": "NODE_ENV=xxx next dev", // 删掉前面的 NODE_ENV=xxx 前缀 "build": "next build" }dev、build命令前没有手动添加NODE_ENV配置。
4. 重新运行项目
现在直接执行对应命令即可,Next.js 会自动设置正确的 NODE_ENV:
- 执行
npm run dev→ 框架自动设为development - 执行
npm run build或npm start→ 框架自动设为production
内容的提问来源于stack exchange,提问作者Victor Eke
相关产品推荐
相关产品推荐

