NODE_ENV是什么东西

NODE_ENV 是 Node.js 中一个非常重要的环境变量,通常用于标识当前应用运行的环境,比如:

  • development(开发环境)

  • production(生产环境)

  • test(测试环境)

它不是 Node.js 自动定义的变量,而是由开发者 自行设定,并在代码中读取该变量来执行不同的逻辑。


设置方式

在 Linux / macOS:

NODE_ENV=production node app.js

在 Windows(CMD):

set NODE_ENV=production && node app.js

在 Windows(PowerShell):

$env:NODE_ENV="production"; node app.js

获取方式

在 Node.js 中可以通过:

console.log(process.env.NODE_ENV);

使用场景示例

1. 加载不同配置

const config = process.env.NODE_ENV === 'production' 
  ? require('./config.prod') 
  : require('./config.dev');

2. 开启或关闭调试日志

if (process.env.NODE_ENV !== 'production') {
  console.log('调试日志:服务已启动...');
}

3. 开启 gzip 压缩、关闭 source map 等前端构建优化

Webpack 或 Vite 构建工具中:

if (process.env.NODE_ENV === 'production') {
  // 压缩代码、去除console等优化
}

注意事项

  • 默认值为空,如果你没手动设定,process.env.NODE_ENVundefined

  • NODE_ENV 在某些库中有特殊含义,比如:

    • Express 会根据 NODE_ENV 设置缓存行为。

    • React 构建时会根据 NODE_ENV 去掉开发调试代码。


✅ 总结一句话:

NODE_ENV 是用于区分运行环境的变量,常用于加载不同配置、控制日志输出、优化构建结果等,是实际开发中不可或缺的工具。


需要我演示一个完整的项目里如何利用 NODE_ENV 控制行为吗?例如根据环境加载不同数据库或中间件。

你可能感兴趣的:(全栈,node.js)