Home >Web Front-end >JS Tutorial >Questions about Node environment variable process.env
I have been working on the deployment project with the operation and maintenance GG for the past two days.
One problem we encountered was a problem with our dev, uat, and product environments.
Because the front-end and back-end are separated, there will be the problem of switching the domain name of the back-end interface during the development and deployment process. After struggling all afternoon and searching various information, I figured out this Node
environment variableprocess.env
.
The following is a record of problem solving. Hope this helps someone who doesn't understand.
First of all, when we are developing single-page applications of react
and vue
, I believe everyone is familiar with the configuration files. process.env
is not unfamiliar.
Can not remember? Black question mark.jpg.
These are the following things.
Literally, it is this env
attribute, in development
and production
The configuration will be slightly different in different environments.
Okay, let's start to see what this so-called process
is.
文档:http://nodejs.cn/api/process....官方解释:process 对象是 一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 require()。
process (process) is actually a global variable that exists in nodejs.
Then, we can get some interesting things through this so-called process.
But today we mainly talk about process.env
.
What is this?
Official:
process.env
The property returns a user Environmental information object.Document: http://nodejs.cn/api/process....
Oh oh oh, it turns out that there is a property that can return the environment where the project is running some information.
What’s the use?
It's an obvious usage scenario, relying on this we can put a label on the server. In this case, we can do some configuration processing according to different environments. For example, turning on sourceMap, switching the domain name of the backend interface, etc.
你是 dev 环境 他是 uat 环境 她是 product 环境。
The following describes how to configure environment variables for each environment.
You can configure it directly in the cmd environment, view environment variables, add environment variables, and delete environment variables.
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在 set NODE_ENV #如果不存在则添加环境变量 set NODE_ENV=production #环境变量追加值 set 变量名=%变量名%;变量内容 set path=%path%;C:\web;C:\Tools #某些时候需要删除环境变量 set NODE_ENV=
Right click (this computer) -> Properties (R) -> Advanced system settings -> Environment variables (N)...
View environment variables, add environment variables, delete environment variables
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在 echo $NODE_ENV #如果不存在则添加环境变量 export NODE_ENV=production #环境变量追加值 export path=$path:/home/download:/usr/local/ #某些时候需要删除环境变量 unset NODE_ENV #某些时候需要显示所有的环境变量 env
Open the configuration file location
# 所有用户都生效 vim /etc/profile # 当前用户生效 vim ~/.bash_profile
Add a statement similar to the following at the end of the file to set or modify environment variables
# 在文件末尾添加如下格式的环境变量 export path=$path:/home/download:/usr/local/ export NODE_ENV = product
After the final modification is completed, you need to run the following statement to reload the system
# 修改/etc/profile文件后 source /etc/profile # 修改~/.bash_profile文件后 source ~/.bash_profile
After figuring out this problem, we can set different NODE_ENV
on machines in different environments. Of course, this field is not necessarily certain.
You can also change it to other NODE_ENV_NIZUISHUAI
etc. It is customized anyway.
1. Modify the backend address configuration in the code
It’s very simple, just use process.env.NODE_ENV
This field is used to judge. (process
is a global attribute of node
, just use it directly)
##2. Set the environment variable
export NODE_ENV=devon linux and then you can happily start the project. At the endBecause my current project is React server-side rendering. Therefore, the backend request forwarding is not handed over to
nginx for processing.
Like ordinary pure single-page applications,
nginx is generally used to forward requests.
The above is the detailed content of Questions about Node environment variable process.env. For more information, please follow other related articles on the PHP Chinese website!