1.引言
一提到NODE_ENV
,你应该会立马反应出来这个process.env.NODE_ENV
。因此常常会产生一种误解,认为NODE_ENV
是process.env
里面的属性。但是其实不是的,今天就简单说说这个NODE_ENV
。
2.什么是NODE_ENV?
为了更好的说明这个概念,就不使用框架了,直接原生:
const http = require("http");
const server = http.createServer((req, res) => {
console.log("输出数据:", process.env);
});
server.listen(3030, () => {
console.log("localhost:3030");
});
访问localhost:3030
得到如下结果:
可以发现这里打印的是系统环境变量里面的内容。这也就解释了为什么打印process.env.NODE_ENV
可能是undefined
,因为在环境变量中没有配置NODE_ENV
变量。因此有些时候在开发中会出现如下版本判断的代码:
const version=process.env.NODE_ENV||"development";
接下来简单说一下如何配置windows和Liunx的NODE_ENV
吧。
3.windows配置NODE_ENV
修改通常分为两种:临时修改和永久修改
(1)临时修改:
set NODE_ENV #查看是否存在环境变量,如果有则会输出,反之为空
set NODE_ENV=production #临时设置NODE_ENV为production
set NODE_ENV #查看设置效果
set NODE_ENV= #删除环境变量
(2)永久修改:
新建一个NODE_ENV=development
的环境变量:
注意需要重启才能生效,当然如果不想重启也可以,需要重启explorer.exe任务,首先打开任务管理器,在详细信息找到windows资源管理器,右键结束任务:
接下来电脑会白屏,需要做的使还是打开任务管理器,点击左上角的文件,新建任务,输入explorer.exe:
重启vscode,新建的环境变量便能够生效了。
4.Linux配置NODE_ENV
根据实际需要Linux一般都是用来生产部署的因此只介绍如何配置NODE_ENV=production
:
(1)vim /etc/profile
进入环境变量的配置文件;
(2)增加NODE_ENV=production
,保存并退出:
(3)输入source /etc/profile
使环境变量快速生效。
(4)输入echo $NODE_ENV
查看是否生效: