Heroku平台NODE_ENV被设置为development而非production如何处理
Heroku NODE_ENV 配置异常问题修复指南
配置不生效的常见原因
- 根目录存在提交到仓库的
.env文件:Heroku 读取环境变量时,应用根目录下.env文件的优先级高于后台设置的 Config Vars,若该文件内写有NODE_ENV=development,会直接覆盖你在后台手动添加的配置 - 启动/构建脚本硬编码了环境变量:检查
package.json内的scripts字段,若start、build等命令存在显式设置NODE_ENV=development的逻辑(例如"start": "NODE_ENV=development node app.js"),会直接覆盖全局环境变量 - 应用代码内手动重置了变量:检查入口文件(如
app.js、index.js)及框架配置文件,是否存在process.env.NODE_ENV = 'development'类的硬编码,部分项目初始化模板会默认添加这段调试逻辑 - 日志工具配置逻辑错误:你可以先在应用入口最顶部添加
console.log('Actual NODE_ENV:', process.env.NODE_ENV),执行heroku logs --tail查看运行时的实际输出,排除 winston 本身的判断逻辑出错的可能
修复操作步骤
- 删除应用根目录下的
.env文件,同时确认.gitignore中已添加.env规则,避免后续再将本地环境配置提交到仓库 - 调整
package.json中的脚本配置,删除所有硬编码NODE_ENV=development的逻辑,标准启动命令示例:"start": "node app.js" - 清理代码中所有手动修改
process.env.NODE_ENV的逻辑 - 重新提交代码部署到 Heroku,部署完成后可执行
heroku run bash进入应用容器,运行echo $NODE_ENV直接验证环境变量的实际值
内容的提问来源于stack exchange,提问作者Mohamed
相关产品推荐
相关产品推荐

