Node.js中NODE_ENV打印正确但对比结果为false问题求助


NODE_ENV显示为development但比较结果为false的排查方案
检查字符串前后的隐藏字符:大概率是设置环境变量时不小心加了空格(比如
NODE_ENV= development,等号后多了空格),打印时肉眼看不到,但实际字符串带空格。可以用console.log('[' + process.env.NODE_ENV + ']')输出,看是否有多余的空格或不可见字符。如果有,设置环境变量时要确保等号前后无空格,比如NODE_ENV=development。排查环境变量是否被覆盖:检查代码中有没有地方重新赋值
process.env.NODE_ENV,比如某些框架、构建工具(如Webpack、Vite)的配置文件里可能会重新设置这个变量,导致和你手动设置的不一致。验证大小写一致性:虽然你打印显示是
development,但可以用console.log(process.env.NODE_ENV.toLowerCase() === 'development')测试,排除大小写差异的可能(比如实际是Development)。确认环境变量传递方式正确:不同系统设置环境变量的方式不同:
- Linux/macOS:启动命令要写成
NODE_ENV=development node app.js - Windows(cmd):
set NODE_ENV=development && node app.js - Windows(PowerShell):
$env:NODE_ENV="development"; node app.js
如果用了dotenv等环境变量管理工具,要确保.env文件里的NODE_ENV设置正确,且加载顺序没问题。
- Linux/macOS:启动命令要写成
内容的提问来源于stack exchange,提问作者Dan Samborschi
相关产品推荐
相关产品推荐

