環境變量(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
的作用就是能跨平台地設置及使用環境變量。
set #獲取所有的環境變量 set keyname #查詢指定的環境變量,eg:set PATH set keyname=value #設置一個環境變量 echo %keyname% #在控制台(CMD)中輸出一個環境變量,eg: echo %PATH%
環境變量設置
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