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