NODE_ENV
是 Node.js 中一个非常重要的环境变量,通常用于标识当前应用运行的环境,比如:
development
(开发环境)
production
(生产环境)
test
(测试环境)
它不是 Node.js 自动定义的变量,而是由开发者 自行设定,并在代码中读取该变量来执行不同的逻辑。
NODE_ENV=production node app.js
set NODE_ENV=production && node app.js
$env:NODE_ENV="production"; node app.js
在 Node.js 中可以通过:
console.log(process.env.NODE_ENV);
const config = process.env.NODE_ENV === 'production'
? require('./config.prod')
: require('./config.dev');
if (process.env.NODE_ENV !== 'production') {
console.log('调试日志:服务已启动...');
}
Webpack 或 Vite 构建工具中:
if (process.env.NODE_ENV === 'production') {
// 压缩代码、去除console等优化
}
默认值为空,如果你没手动设定,process.env.NODE_ENV
是 undefined
。
NODE_ENV
在某些库中有特殊含义,比如:
Express
会根据 NODE_ENV
设置缓存行为。
React
构建时会根据 NODE_ENV
去掉开发调试代码。
NODE_ENV
是用于区分运行环境的变量,常用于加载不同配置、控制日志输出、优化构建结果等,是实际开发中不可或缺的工具。
需要我演示一个完整的项目里如何利用 NODE_ENV
控制行为吗?例如根据环境加载不同数据库或中间件。