簡介
環境變量(environment variables) 不屬於 NodeJS
范疇,它是操作系統用於設定執行環境的參數。會在程序運行時傳遞給應用程序。
NodeJS
獲取環境變量,是通過 global
對象中的 process
進程對象獲取的。
process.env.env_name //獲取對應環境變量的值
應用
環境變量在 NodeJS中的應用,常用於區分當前的環境是測試環境還是正式環境
if(process.env.NODE_ENV === ‘dev’){
//測試環境
}else{
//正式環境
}
也可以進一步的根據環境導出對應的參數配置(參數的導出完全在配置文件內部自己判斷,自己消化)
# config.js
var dev = {};
var build = {};
module.exports = process.env.NODE_ENV === ’dev' ? dev : build;
其次需要注意的是在package.json中直接為腳本(scripts)設置環境變量:
{
'run': "NODE_ENV = \" DEV \""
}
由於 script中的命令會在命令行工具中進行執行,但是不同的命令行工具,其差異性很大,而且不同的系統,其shell工具差異更大,所以跨平台的兼容性非常堪憂,基本上我們並不會直接使用上面的方式,而是通過一個NPM插件來解決:cross-env
。
{
'run': "cross-env NODE_ENV = \" DEV \""
}
cross-env
的作用就是能跨平台地設置及使用環境變量。
最后,既然說到不同平台其環境變量配置具有差異,這里我就以常用的三個平台為例,來簡單的學習一下環境變量的配置
環境變量設置
Windows
永久:“我到電腦” -> “屬性” -> “高級系統設置” -> “環境變量” : (修改后記得保存)
臨時:
set #獲取所有的環境變量
set keyname #查詢指定的環境變量,eg:set PATH
set keyname=value #設置一個環境變量
echo %keyname% #在控制台(CMD)中輸出一個環境變量,eg: echo %PATH%
Linux
永久:如果是系統級的環境變量請使用“vi編輯器”編輯 /etc/profile
文件,如果是用戶級別的環境變量,則進入到對應的用戶目錄修改 .profile
文件。
臨時:
set #查看所有環境變量
env #只查看用戶級別的環境變量
export keyname=value #設置一個環境變量
echo $keyname #顯示指定環境變量的值,eg:echo $PATH
引用環境變量的格式:$keyname
,因此如果想合並多個環境變量的值到一個指定的環境變量,可以通過 :
隔開。
export a=1
export b=2
export c=$a:$1
Mac OS
永久:如果修改的是系統級別的,請修改 /etc/profile
文件或者是 /etc/paths
,如果是用戶級別的,則修改:~/.bash_profile | ~/.bash_login | ~/.profile | ~/.bashrc
等。
臨時:
export keyname=value #增加環境變量
echo $keyname #輸出指定環境變量的值, eg:echo $path
引用一個環境變量,則附加 $
符號
export PATH=~/user/name:$PATH